如何将当前自定义用户保存为我的 Melk 模型中的人员字段?有一对多的关系



我很想解决这个问题。我使用自定义用户我有 2 种型号自定义用户和梅尔克在我的 forms.py 中,当我使用"person"作为字段时,这意味着用户可以看到所有用户,但我希望当前用户填写表单,并且基于一对多关系,person 字段由当前用户的 id 填充。

我删除了表单中的"人"字段并尝试使用 form.users_melk.person_id = request.userMelk.objects.create(person_id = user_id)但它并没有解决。

models.py

class CustomUser(AbstractUser):
     def __str__(self):
        return self.email
class Melk(models.Model):
    category = models.CharField(max_length=50)  
    type_deal= models.CharField(max_length=50) 
    person = models.ForeignKey('CustomUser', on_delete=models.DO_NOTHING) 
    def __str__(self):
        return self.category

forms.py

class MelkForm(forms.ModelForm):
    class Meta:
        model = Melk
        fields = ('category', 'type_deal', 'person')

views.py

@login_required(login_url="home")
def  melk_new(request):
    f = MelkForm(request.POST)
    if f.is_valid():
        f.save()        
    return render(request,'melk_new.html', { 'form': f})

当我删除 forms.py 中的"人员"字段时,会出现此错误:

IntegrityError at/users/melk_new/NOT NULL 约束失败: users_melk.person_id 请求方法:POST 请求 网址: http://127.0.0.1:8000/users/melk_new/姜戈 版本: 2.1.7

我解决了这个问题f.person= request.user.id

最新更新