关于Django在我的模型中访问和保存用户Foriegnkey的问题

关于Django在我的模型中访问和保存用户Foriegnkey的问题,django,django-authentication,Django,Django Authentication,我明白了,但我想知道是否有更简单的方法来实现这一点 也跟着 下面给出了一个示例模型 class Post (models.Model): name = models.CharField(max_length=1000, help_text="required, name of the post") description = models.TextField(blank=True) created_datetime = models.DateTimeField(auto_

我明白了,但我想知道是否有更简单的方法来实现这一点

也跟着

下面给出了一个示例模型

class Post (models.Model):
    name = models.CharField(max_length=1000, help_text="required, name of the post")
    description = models.TextField(blank=True)
    created_datetime = models.DateTimeField(auto_now_add=True, editable=False)
    modified_datetime = models.DateTimeField(auto_now=True, editable=False)
    custom_hashed_url = models.CharField(unique=True, max_length=1000, editable=False)

def save(self, *args, **kwargs):
        #How to save User here?
        super(Model, self).save()
在调用save()之前,是否可以将当前登录用户发送到模型

他认为:

if request.method == 'POST':

if not errors:

    f = PostForm(request.POST)

    f.save()

假设您已经用
django admin
标记了它,我假设您希望保存通过管理界面修改对象的
用户。(您不能在模型的保存方法中真正做到这一点,因为它不一定有权访问
用户
对象——例如,如果您正在从shell界面保存对象,该怎么办?)

要在Django的admin中执行此操作,只需覆盖您的
ModelAdmin
save\u model
方法:

class PostAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        obj.user = request.user
        obj.save()

admin.site.register(Post, PostAdmin)

当然,您需要在您的模型中添加一个名为
user
ForeignKey
,这样才能工作…

我明白了。那么,如果有用户Foreignkey,人们如何在模型中保存用户呢?您只需要将
User=models.Foreignkey(User)
添加到您的模型中。那么上面的代码应该可以正常工作。我同意,但这是从管理界面。在我的应用程序中,使用django的auth有什么简单的方法可以做到这一点吗?只有当你可以访问请求对象时,在这种情况下,解决方案不会比你发布的原始链接简单得多——一个模型表单保存对请求的引用,并在保存时从中提取用户。我一直在寻找解决这个问题的方法。我的用户已登录,我有foreignkey设置,但它给我一个错误
无法分配None:“MyModel.user”不允许空值。
我一直在寻找解决此问题的方法。我的用户已登录,我有foreignkey设置,但它给我一个错误
无法分配None:“MyModel.user”不允许空值。