更新了对问题的回答:当显示药物时,如何从Atc获取一个查找值以显示在事务表(druges)上?在
Saverio的方法,将关系嵌入到模型中:
在模型.py在
class Atc(models.Model):
id = models.CharField(max_length=60, primary_key=True, db_column='ID')
txt = models.CharField(max_length=690, db_column='TXT')
class Meta:
db_table = u'ATC'
def __unicode__(self):
return u"%s - %s" % (self.id, self.txt)
class Drug(models.Model):
id = models.CharField(max_length=64, primary_key=True, db_column='ID')
atc = models.ForeignKey(Atc, db_column='ATCCD')
pricetopharm = models.FloatField(db_column='PRICETOPHARM')
brandnm = models.CharField(max_length=135, db_column='BRANDNM')
drugnm = models.CharField(max_length=240, db_column='DRUGNM')
class Meta:
db_table = u'DRUGS'
def __unicode__(self):
return u"%s - %s" %(self.drugnm, self.formandstrength)
在管理员py在
^{pr2}$关键点是模型.py在
atc = models.ForeignKey(Atc, db_column='ATCCD')
药品(交易,非参考表)和
('ATC', {'fields': ['atc','brandnm'] }),
致管理员py表示多对一关系的字段集。在
现在,内容管理员py不太相关(这应该是MTV的理念。另外,用单数形式重命名对象(药物,而不是药物)是有帮助的,如果没有其他方法可以去除重复的s(即药物不是药物)。 结果显示药物显示一个id+txt的下拉框,例如P04H11-细胞毒性
谢谢你们的帮助 皮特
(太小了,汉堡没法回答我自己的问题,所以修改了原来的问题!)在
为什么不只是
这将在表单的inlines部分显示药物实例的相关atc。在
(另外,值得注意的是,django模型通常以单数命名,如}。这与
Drug
而不是{Drug.objects.filter()
,drug = Drug()
等在语义上是正确的)编辑:关于数据库模式和数据模型的进一步考虑
您似乎有一个以前的数据库模式要使用。如果不能更改列名,则至少可以为属性指定更有意义的名称,这样代码的可读性要高得多:
^{pr2}$如果您也拥有DB模式,那么一旦数据模型完成,就使用South migrations(
db.rename(table_name, old_column_name, new_column_name)
)将模式与现在可读的数据模型同步。在你是怎么得到那个描述的?如果你有任何代码张贴,也许我们可以帮助更多!在
您必须使用notesid来获取notesinline对象并显示它!在
其中notesid是DrugsAdmin的对象变量:)
相关问题 更多 >
编程相关推荐