Python Django 2型号,在admin.py中有多个ManyToManyField
我在models.py中有以下内容:Python Django 2型号,在admin.py中有多个ManyToManyField,python,django,django-admin,Python,Django,Django Admin,我在models.py中有以下内容: class Choices(models.Model): description = models.CharField(max_length=300) def __unicode__(self): return self.description class UserProfile(models.Model): user = models.ForeignKey(User, unique=True) fulln
class Choices(models.Model):
description = models.CharField(max_length=300)
def __unicode__(self):
return self.description
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
fullname = models.CharField(_('Full Name'), max_length=50)
birthdate = models.DateTimeField(_('Birthday'))
url = models.URLField(_('Website'), blank=True)
company = models.CharField(_('Company'), max_length=50)
CATEGORY_CHOICES = (
('M',_('Male')),
('F',_('Female')),
)
gender = models.CharField(_('Gender'), max_length=200, choices = CATEGORY_CHOICES)
picture = models.ImageField(_('Picture/Avatar'), upload_to='profile_photo', blank=True)
bio = models.TextField()
planguages = models.ManyToManyField(Choices)
现在,我希望能够在管理中编辑用户配置文件,以及填充用户在创建配置文件时可以选择的选项。作为一个django新手,我只为编辑用户配置文件做了一些选择,但没有填充选择。无论如何,我能做到,但我不知道如何两者兼得
编辑:
这是我现在的管理员
class ChoicesAdmin(admin.ModelAdmin):
list_display = ['description']
class ProfilesAdmin(admin.ModelAdmin):
list_display = ['user']
admin.site.register(UserProfile, ProfilesAdmin)
在文档中查找内联线。您要查找的是
filter\u horizontal
class ChoicesAdmin(admin.ModelAdmin):
list_display = ['description']
class ProfilesAdmin(admin.ModelAdmin):
list_display = ['user']
filter_horizontal = ['planguages']
admin.site.register(UserProfile, ProfilesAdmin)
admin.site.register(Choices, ChoicesAdmin)
这将允许您向用户添加语言
另外,您必须注册ChoicesAdmin类才能看到添加选项的绿色+链接。我注册了,并且我成功地注册了,但它显示的是与用户相关的选项,而不是我可以定义的选项。@user1164124-如果您为
选项设置了模型管理员
,您的planguages
字段旁边会有一个加号图标,它将带您进入“选项创建”屏幕。@YujiTomita我试过了,但它说许多字段不受支持。@Milos,胡说!注册ChoicesAdmin
你会看到你的绿色加号。@YujiTomita,我可以注册admin.site.Register(UserProfile,ProfilesAdmin),但是我不能编辑用户配置文件代码>