Извините, если вопрос слишком простой, но я прочитал документацию и многие статьи, и ни одна из них, похоже, не отвечает на мой вопрос.
Я хочу связать опубликованную форму пользователя с этим пользователем вБД, поэтому я могу запросить данные, предоставленные для каждого конкретного пользователя, и использовать удаление в CASCADE в случае, если пользователь удален.
Я попытался создать модель, а затем ModelForm на основе этой модели. Я добавил поле с именем «user» в Model как ForeignKey, поэтому в ModelForm переводится в ModelChoiceField, который, кстати, скрыт, поскольку пользователь не должен изменять это значение. Но когда я пытаюсь обновить пользовательское поле в views.py, ничего не происходит, форма сохраняется в БД, но пользовательское поле остается как None или Null в БД.
models.py
class Foo(models.Model):
user = models.ForeignKey(User, related_name='+', on_delete=models.CASCADE)
forms.py
class FooForm(ModelForm):
class Meta:
model = Foo
fields = ['user', 'field1', 'field2']
exclude = ['user']
views.py
def index(request):
if request.user.is_authenticated:
if request.method == 'POST':
foo = FooForm(request.POST)
if foo.is_valid():
foo.save(commit=False)
foo.user = request.user
foo.save()
Я получил опубликованную форму, сохраненную в БД, но поле пользователя имеет значение NULL. Пожалуйста, скажите мне, если вы видите какие-либо ошибки в моем коде или есть лучший способ добиться того, чего я хочу. Заранее спасибо.