首页 > 解决方案 > Django:在一个模型中,我使用用户模型作为外键,我想在创建模型时自动填充用户名

问题描述

class ReplyPost(models.Model):
    topic = models.ForeignKey(CreatePost, blank=True,null=True, related_name='subject_post', on_delete=models.CASCADE)
    #message = models.TextField(validators=[validate_post_word_count])
    message = models.TextField()
    create_reply_date = models.DateTimeField(auto_now_add=True)
    update_reply_date = models.DateTimeField(auto_now=True)
    reply_by = models.ForeignKey(User, blank=True, null=True, related_name='replier_post', on_delete=models.CASCADE)

我有这个模型,在创建replyPost 我想用当前用户填充reply_by

我试过了:

form.cleaned_data['created_by'] = request.username

保存表单后,它没有保存用户名。

在已打印的表单中,它将此字段显示为标签..如何填写在 Django 表单中选择的内容

标签: djangoselectormforeign-keys

解决方案


您是否尝试过使用 commit=False?它允许您在保存之前对表单进行更改。

comment = form.save(commit=False)
comment.reply_by = request.user
comment.save()

顺便说一句,下次使用代码块(```)


推荐阅读