Django:如何将当前用户名保存到数据库中

时间:2011-07-22 10:17:16

标签: django

我是一个新的Django(1.3)用户,我正在设置典型的博客/文章应用程序。我有一个模型,我想保存当前的用户名(看看谁创建了这篇文章)。我已经实现了advice on this,但是我的代码使用以下消息来崩溃服务器:“NameError:name'User'未定义”。这是我的模特:

from django.db import models

class Resort(models.Model):
    name = models.CharField(max_length=300)
    description = models.TextField()
    location = models.CharField(max_length=300)
    ski_hire = models.TextField()
    weather = models.TextField()
    piste_map = models.TextField()
    webcam = models.TextField()
    snow = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    modified_at = models.DateTimeField(auto_now=True)
    author = models.ForeignKey(User)
    def __unicode__(self):
        return self.name

我怀疑我需要在admin.py中覆盖save方法,但我不知道该怎么做。任何建议将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:0)

在外键中使用User时,您需要确保从models.py中的django.contrib.auth.models导入用户。

在您的admin.py中,您可以使用save_model

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

答案 1 :(得分:0)

也许你应该在分配之前导入User类?

from django.contrib.auth.models import User