内联管理表单中的自定义字段视图
Custom Field view in inline admin form
我正在使用内联模型管理和多对多关系。我有两个模型 类 User 和 Videodata,我 link 将它们与多对多关系进行了编辑。以下是我的模型
class User(models.Model):
user_id = models.CharField(max_length=40,unique=True)
user_name = models.CharField(max_length=40)
user_email = models.EmailField()
user_city = models.CharField(max_length=40)
videos_watched = models.ManyToManyField('VideoData', through='WatchedVideo')
class Meta:
ordering = ['user_id']
verbose_name = 'User MetaData'
verbose_name_plural = 'Users MetaData'
def __unicode__(self):
return self.user_id
class VideoData(models.Model):
video_id = models.CharField(max_length=40,unique=True)
video_name = models.CharField(max_length=40)
class Meta:
verbose_name = 'User_Video MetaData'
verbose_name_plural = 'Users_Video MetaData'
def __unicode__(self):
return self.video_id
class WatchedVideo(models.Model):
user = models.ForeignKey(User, to_field = 'user_id')
videoData = models.ForeignKey(VideoData, to_field = 'video_id')
time = models.PositiveIntegerField(null = True)
在用户 table 中,我看到了视频数据,但有 video_id,但我希望 video_name 显示在那里。我附上了当前输出的 link。
https://drive.google.com/open?id=0B0JOKpp3abpzOFN3LVg0WEs3a0k
你可以在上面的图片中看到视频 ID 在那里,但我想要视频名称。我该怎么做?
您可以将VideoData的方法__unicode__
更改为显示名称:
def __unicode__(self):
return self.video_name
编辑:
添加方法 __str__
到 VideoData
:
def __unicode__(self):
return self.video_id
def __str__(self):
return self.video_name
我显示的名字有以下变化:
def __unicode__(self):
return self.video_name
def __str__(self):
return self.video_id
我正在使用内联模型管理和多对多关系。我有两个模型 类 User 和 Videodata,我 link 将它们与多对多关系进行了编辑。以下是我的模型
class User(models.Model):
user_id = models.CharField(max_length=40,unique=True)
user_name = models.CharField(max_length=40)
user_email = models.EmailField()
user_city = models.CharField(max_length=40)
videos_watched = models.ManyToManyField('VideoData', through='WatchedVideo')
class Meta:
ordering = ['user_id']
verbose_name = 'User MetaData'
verbose_name_plural = 'Users MetaData'
def __unicode__(self):
return self.user_id
class VideoData(models.Model):
video_id = models.CharField(max_length=40,unique=True)
video_name = models.CharField(max_length=40)
class Meta:
verbose_name = 'User_Video MetaData'
verbose_name_plural = 'Users_Video MetaData'
def __unicode__(self):
return self.video_id
class WatchedVideo(models.Model):
user = models.ForeignKey(User, to_field = 'user_id')
videoData = models.ForeignKey(VideoData, to_field = 'video_id')
time = models.PositiveIntegerField(null = True)
在用户 table 中,我看到了视频数据,但有 video_id,但我希望 video_name 显示在那里。我附上了当前输出的 link。
https://drive.google.com/open?id=0B0JOKpp3abpzOFN3LVg0WEs3a0k
你可以在上面的图片中看到视频 ID 在那里,但我想要视频名称。我该怎么做?
您可以将VideoData的方法__unicode__
更改为显示名称:
def __unicode__(self):
return self.video_name
编辑:
添加方法 __str__
到 VideoData
:
def __unicode__(self):
return self.video_id
def __str__(self):
return self.video_name
我显示的名字有以下变化:
def __unicode__(self):
return self.video_name
def __str__(self):
return self.video_id