django admin中foreignkey的对象:
我的django模型中有一个对象:django admin中foreignkey的对象:,django,python-3.x,Django,Python 3.x,我的django模型中有一个对象: class Stock(models.Model): name = models.CharField(null=True,blank=True,max_length=20) def ___str__(self): return self.name def __unicode__(self): return self.name 当我在django管理员中看到它时,它工作得很好 但在管理员中,当我想查看此
class Stock(models.Model):
name = models.CharField(null=True,blank=True,max_length=20)
def ___str__(self):
return self.name
def __unicode__(self):
return self.name
当我在django管理员中看到它时,它工作得很好
但在管理员中,当我想查看此对象时:
class StockData(models.Model):
stock = models.ForeignKey(Stock,on_delete=models.PROTECT,null=True,blank=True)
date = models.DateTimeField(null=True,blank=True)
interval = models.CharField(null=True, blank=True,max_length=2)
def ___str__(self):
return self.stock+ ":" + str(self.date)
def __unicode__(self):
return self.stock + ":" + str(self.date)
使用此管理员:
from django.contrib import admin
from .models import StockData
# Register your models here.
class StockData_Admin(admin.ModelAdmin):
list_display = (
'date',
'stock',
'interval'
)
admin.site.register(StockData,StockData_Admin)
但在管理页面中,stock对象表示为:
Stock object (1)
编辑:
那么如何解决这个问题呢
我的django版本:
>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)
感谢和问候在models.py中尝试类似的功能(未测试) 在admin.py中,试试这个
class StockData_Admin(admin.ModelAdmin):
list_display = (
'get_date',
'get_stock',
'get_interval'
)
def get_date(self, obj):
return obj.date
def get_stock(self, obj):
return obj.stock
def get_interval(self, obj):
return obj.interval
get_date.empty_value_display = 'No available date'
get_stock.empty_value_display = 'No available stock'
get_interval.empty_value_display = 'No available interval'
admin.site.register(StockData,StockData_Admin)
在models.py中,尝试类似的方法(未测试) 在admin.py中尝试
class StockData_Admin(admin.ModelAdmin):
list_display = (
'get_date',
'get_stock',
'get_interval'
)
def get_date(self, obj):
return obj.date
def get_stock(self, obj):
return obj.stock
def get_interval(self, obj):
return obj.interval
get_date.empty_value_display = 'No available date'
get_stock.empty_value_display = 'No available stock'
get_interval.empty_value_display = 'No available interval'
admin.site.register(StockData,StockData_Admin)
你的
Stock
定义中有一个输入错误-Python的神奇方法以双下划线开始和结束,Stock
的str当前以三个下划线开始,而不是两个下划线。打印Stock
实例时,它会返回到models.Model
。删除超级下划线后,您将看到股票
正确显示:
您的
股票定义中有一个输入错误-Python的神奇方法以双下划线开始和结束,股票的str当前以三个下划线开始,而不是两个下划线。打印Stock
实例时,它会返回到models.Model
。删除超级下划线后,您将看到股票
正确显示:
从StockData\u Admin中的列表显示中删除间隔class@MohammadAli不工作:/in stock表名称可能返回null值(空字符串),而in stock数据模型也可能返回null(空)。那么在这种情况下,你想显示什么呢?。不清楚您要显示什么。请参见模型中编辑的出生日期@DimitrisKougioumtzis的示例(null=True,blank=True)允许空值(空字符串),因此是否希望使用空字符串?。特别是,在StockData\u Admin中的list\u显示中,在外键删除间隔中使用空值不是最佳做法class@MohammadAli不工作:/in stock表名称可能返回null值(空字符串),而in stock数据模型也可能返回null(空)。那么在这种情况下,你想显示什么呢?。不清楚您要显示什么。请参见模型中编辑的出生日期@DimitrisKougioumtzis的示例(null=True,blank=True)允许空值(空字符串),因此是否希望使用空字符串?。特别是在外键中使用空值不是最佳做法