2013-07-30 49 views
0

我有一个模型,在Django configuration,并希望填写author字段get_username 这可以在模型内完成,或者必须从形式完成?如果它必须在表单上,​​我如何更改标准管理页面来实现此功能? 目前,该模型从而写着:如何用用户名填写Django中的字段?

class Configuration(models.Model): 

title = models.CharField(max_length=100,unique=True,blank=False) 
author = models.CharField(max_length=50,blank=False) 

created = models.DateTimeField("date created",auto_now_add=True) 
modified = models.DateTimeField("date modified",auto_now=True) 
description = models.CharField(max_length=512) 
drawing = models.ForeignKey(Drawing) 
instruments = models.ManyToManyField(Instrument) 

def __unicode__(self): 
    return self.title 

回答

3

使用models.ForeignKey

#models.py 
from django.contrib.auth.models import User 
class Configuration(models.Model): 
    author = models.ForeignKey(User) 
    ... 

#admin.py: 
class Configuration_admin(admin.ModelAdmin): 
    fields = ('title', 'author',....) 
+0

所有这些解决方案导致'数据库错误。没有这样的列: _configuration.author_id' –

+1

@RowanIngram您需要首先删除表并再次同步它。或者更好地使用[south](http://south.readthedocs.org/en/latest/)。 –

0

类似的东西:

from django.contrib.auth.models import User 

class ... 
    ... 
    username = models.ForeignKey(User) 
0

如果你想使你的模型和默认的用户之间的一些关系模型,那么您可以将用户模型扩展到您自己的自定义模型中,如下所示:

models.py

from django.contrib.auth.models import User 

class Configuration(models.Model): 
    author = models.OneToOneField(User) 
    .. 
    .. 
相关问题