2013-07-30 52 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) 
    .. 
    .. 
相關問題