Python 仅更新Django表单中的ForeignKey字段

Python 仅更新Django表单中的ForeignKey字段,python,django,Python,Django,我尝试以django形式更新模型的ForeignKey字段。我希望用户不要将自己的姓名作为所写文章的作者写入输入字段,但必须将自己的id保存在article模型的字段中。在我的html表单中,我只显示一个带有隐藏输入的按钮。但是在我的views.py中,我写道表单应该采用user.id,并将其放在的“article\u author”字段中 不幸的是,我并没有更新到表中。我做错了什么 我的模型: class Article(models.Model): article_pub_date

我尝试以django形式更新模型的ForeignKey字段。我希望用户不要将自己的姓名作为所写文章的作者写入输入字段,但必须将自己的
id
保存在
article
模型的字段中。在我的html表单中,我只显示一个带有隐藏输入的按钮。但是在我的views.py中,我写道表单应该采用
user.id
,并将其放在
的“article\u author”字段中

不幸的是,我并没有更新到表中。我做错了什么

我的模型:

class Article(models.Model):
    article_pub_date = models.DateField(default=None,null=True,verbose_name="Дата публикации")
    article_title = models.CharField(max_length=70, verbose_name="Заголовок", null=True)
    article_text = models.TextField(verbose_name="Текст", null=True)
    article_author = models.ForeignKey(User, verbose_name='Автор', blank=True, null=True)
我的观点

def article_detail(request, article_id):
    user = request.user
    article = get_object_or_404(Article, pk=article_id)
    author_form = ArticleForm(request.POST or None, instance=article, initial={'article_author': user.id})
    if author_form.is_valid():
        author_form.save()
    else:
        return redirect('/')
我的表格.py

class ArticleForm(forms.ModelForm):
    class Meta:
        model = Article
        fields = ('article_author',)
        widgets = {'article_author': forms.HiddenInput()}
和我的模板:

<form method="POST" action="">
{% csrf_token %}
{{ author_form.as_p }}
<input type="submit" value="BIND" class="btn">
</form>

{%csrf_令牌%}
{{author_form.as_p}}

尝试以下操作之一:

if author_form.is_valid():
    article = author_form.save(commit=False)
    article.article_author = user
    # article.article_author_id = user.id  #w ill work as well
    article.save()
else:
    return redirect('/')
或者以实例化的形式:

initial={'article_author_id': user.id}