我为我的应用编写了此模型
from django.db import models
from accounts.models import FrontendUsers
from django.utils import timezone
# Create your models here.
class Jit(models.Model):
value = models.CharField(max_length = 100, blank = False)
author = models.ForeignKey(FrontendUsers, on_delete=models.CASCADE)
date = models.DateField(default=timezone.now() )
在视图中,我定义了一个函数,该函数将使用从用户那里获取的信息填充Jits表。
def new_post (request):
if request.method == 'POST':
value = request.POST.get('value')
if value != '' and value :
author_id = int(request.POST['user_id'])
jit = Jit.objects.create(value = value,author=author_id)
jit.save()
return redirect('feed')
else:
messages.error(request,'There was some problem writing your jit.')
return redirect('feed')
无法分配“ 15”:“ Jit.author”必须是“ FrontendUsers”实例。
简而言之,我试图将author_id添加到Jit的表中,以便可以连接两个表。
答案 0 :(得分:1)
您可以像使用它
jit = Jit.objects.create(value = value,author_id=author_id)
答案 1 :(得分:1)
使用以下方法之一,但是第二种方法更好,因为它不会从数据库中获取作者:
author = FrontendUsers.objects.get(id=author_id)
jit = Jit.objects.create(value = value,author=author)
或
jit = Jit.objects.create(value = value,author_id=author_id)
答案 2 :(得分:-1)
您正在将用户实例转换为ant int。
我认为您应该使用一种表格来实现您想要的。试试这样的东西,对我有用。
def new_post (request):
if request.method == 'POST':
if your_form.is_valid():
value = your_form.cleaned_data["value"]
if value:
result = your_form.save(commit=False)
user = Jit.objects.get(id=value)
result.author = user
result.save()