Django:从一个模型中获取id,然后添加到另一个模型中



我有两个模型

当只有一个被触发时,我想基本上在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,
)

最新更新