Мне любопытно решить эту проблему.
Я использую CustomUser
У меня 2 модели CustomUser и Melk
В моем forms.py, когда я использую 'person' в качестве поля, это означает, что пользователь может видеть всех пользователей, но я хочу, чтобы текущий пользователь заполнил форму, и на основе отношения onetomany поле person заполняется идентификатором текущего пользователя.
Я удалил поле 'person' в формах и попытался использовать
form.users_melk.person_id = request.user
или
Melk.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})
Когда я удаляю поле 'person' из forms.py, появляется эта ошибка:
Ошибка IntegrityError в / users / melk_new / NOT NULL:
users_melk.person_id Метод запроса: POST-запрос
URL: http://127.0.0.1:8000/users/melk_new/ Django Версия: 2.1.7