相关疑难解决方法(0)

Django Admin ManyToManyField

我做了一个模型(models.py):

class opetest(models.Model):
    name = models.CharField(max_length=200)
    author = models.ForeignKey(User, related_name='author')
    description = models.TextField(u'Test description', help_text = u'Some words about quiz')
    pub_date = models.DateTimeField('date published', blank=False)
    vacancies = models.ManyToManyField(Vacancy, blank=True)
    students = models.ManyToManyField(User, blank=True, related_name='opetests') #This field I want to edit on "User change page"
    estimate = models.IntegerField(default = 0, help_text = u'Estimate time in hours. \'0\' - unlimited')
Run Code Online (Sandbox Code Playgroud)

然后我尝试添加内联块以允许opetest在"更改用户"页面(admin.py)上进行分配:

class ProfileAdmin(UserAdmin):
    filter_horizontal = ('opetests',)

admin.site.unregister(User)
admin.site.register(User, ProfileAdmin)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

'ProfileAdmin.filter_horizontal' refers to field 'opetests' that is missing from model …
Run Code Online (Sandbox Code Playgroud)

django django-models django-orm django-admin manytomanyfield

20
推荐指数
1
解决办法
3万
查看次数

如何在 Django 管理面板上显示多对多字段?

我有 2 个模型,产品和标签。产品和标签之间的关系是多对多关系。

如何在 django 管理面板上显示“标签”字段?当前,当我使用下面的代码时,该值为 None

模型.py

class Tag(models.Model):
  name = models.CharField(max_length=200, null=True)

  def __str__(self):
    return self.name

class Product(models.Model):
  CATEGORY = (
    ('Indoor','Indoor'),
    ('Outdoor','Outdoor'),
  )

  name = models.CharField(max_length=200, null=True)
  price = models.FloatField(null=True)
  category = models.CharField(max_length=200, choices=CATEGORY)
  description = models.CharField(max_length=200, null=True)
  date_created = models.DateTimeField(auto_now_add=True, null=True)
  tags = models.ManyToManyField(Tag)
Run Code Online (Sandbox Code Playgroud)

管理员.py

@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
  list_display = ['id','name','price','category','tags']
  list_display_links = ['name']
  
  def tags(self):
    return self.tags.name
Run Code Online (Sandbox Code Playgroud)

python django django-models django-admin

5
推荐指数
2
解决办法
4335
查看次数