我正在使用Django和Django-tables2。我的模型看起来像这样:
# models.py
class Word(models.Model):
[...]
word_category = models.ForeignKey('Wordcategory', db_column='word_category')
class Meta:
managed = False
db_table = 'Word'
class Wordcategory(models.Model):
[...]
name = models.CharField(max_length=255)
class Meta:
managed = False
db_table = 'WordCategory'
在我的表中,我正在显示表Word中的条目,但是我想为每个Word对象显示相应WordCategory对象的名称值。我该怎么做?
编辑:我的表类现在看起来像这样,在控制台或网站上都没有打印类别:
class CategoryColumn(tables.Column):
def render(self, value):
return value.name
class WordsTable(tables.Table):
category = CategoryColumn(verbose_name="Kategorie", accessor="category")
def render_category(self, value):
print value.name
return value.name
class Meta:
model = Word
attrs = {"class": "table"}
答案 0 :(得分:0)
在Django-tables2中,您可以添加render method来自定义列的呈现方式。
class WordTable(tables.Table):
def render_word_category(self, value):
"""Display the name of the category"""
return value.name
class Meta:
model = Word
另一种方法是更改__str__
方法(Python 2中的__unicode__
)以返回名称。但是,这会影响您显示单词类别的其他地方,因此您可能不希望进行此更改。
class Wordcategory(models.Model):
[...]
name = models.CharField(max_length=255)
def __str__(self):
return self.name