我有两个模型
当只有一个被触发时,我想基本上在2个不同的模型中生成2个数据库条目。
class Parent(models.Model):
creation_date = models.DateTimeField(auto_now = True)
entrya= models.CharField(max_length=50)
rnum = models.CharField(max_length=50)
entryb = models.CharField(max_length=50)
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
class Child(models.Model):
creationdate = models.DateTimeField(auto_now = True)
rnum = models.ForeignKey(Parent, on_delete=models.CASCADE)
amounta= models.DecimalField(max_digits=12, decimal_places=2)
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
现在,当一个窗体制作父,我自动想要一个空白的Child
条目在数据库
Forms.py
class RNumForm(forms.ModelForm):
class Meta:
model = Parent
fields = ['entrya', 'rnum', 'entryb']
那么接下来,这里我想创建两个数据库条目:
Views.py
@login_required
def rnum(request):
if request.user.is_authenticated:
if request.method == "POST":
addrnum = RNumForm(request.POST or None)
if addrnum.is_valid():
addrnum.instance.user_id = request.user.id
addrnum.save()
rnum_new = addrnum.instance.rnum
rnum_id_query = Parent.objects.filter(user=request.user, rnum = rnum_new).values("id")
print(rnum_id_query)
rnum_id = rnum_id_query.id
print(rnum_id)
Child.objects.create(
amounta= "0",
rnum = rnum_id,
user_id = request.user.id,
)
在我的终端中,我总是把这个打印出来作为错误
<QuerySet [{'id': 1}]>
{'id': 1}
Cannot assign "{'id': 1}": "Child.rnum" must be a "Parent" instance.
有谁有什么想法或者有人能帮忙吗?
非常感谢!
您可以简单地使用封装在表单中的实例:
addrnum = RNumForm(request.POST or None)
if addrnum.is_valid():
addrnum.instance.user_id = request.user.id
parent =addrnum.save()
Child.objects.create(
amounta= '0',
rnum = parent,
user_id = request.user.id,
)