我有一个具有属性(公司名称......)的客户类,另一个具有客户数据。它是一个文本字段,但不显示为文本字段。我在客户端类中使用 models.foreignkey(outraclasse, on_delete=models.cascade)
调用它。我做错了吗?缺少什么?
编辑: 这些是应用程序的模型和管理员 管理员:
from django.contrib import admin
from tenants.models import client
# register your models here.
class clientadmin(admin.modeladmin):
list_display = [
'company_name',
'company_register_name',
'company_id']
search_fields = [
'company_name',
'company_register_name',
'company_id']
list_per_page = 10
admin.site.register(client,clientadmin)
型号
from django.db import models
from datetime import date
class ClientBasicData(models.Model):
# client_id = models.ForeignKey(Client, on_delete=models.CASCADE)
name_admin_ti = models.CharField(max_length=30,
verbose_name = u'Nome do responsavel TI',
unique=False)
def __str__(self):
return f"{self.name_admin_ti}"
class Client(models.Model):
company_data = models.ForeignKey('ClientBasicData',
on_delete=models.CASCADE,
verbose_name= u'Dados do
cliente',
unique=False)
company_name = models.CharField(max_length=30,
verbose_name = u'Razao social',
unique=False)
company_register_name = models.CharField(max_length=30,
verbose_name = u'Nome da Empresa',
unique=True)
company_id = models.CharField(
max_length=30,
verbose_name = u'CNPJ da empresa',
unique=True)
date_start_company = models.DateField(
verbose_name = u'Data de ingresso de cliente',
unique=False,
default=date.today,
null=True)
def __str__(self):
return f"{self.company_name} - {self.company_register_name} - {self.company_id}"
"""
class ClienteBasicData(models.Model):
client_id = models.ForeignKey(Client, on_delete=models.CASCADE)
name_admin_ti = models.CharField(max_length=30,
verbose_name = u'Nome do responsabel TI',
unique=False)
def __str__(self):
return f"{self.name_admin_ti}"
"""
正确答案
Django Admin 中的默认行为是对另一个模型的引用显示为下拉框。这是有道理的,因为对另一个模型(外键)的引用只是一个值,它表示:“另一个表中的哪一行保存与此记录相关的数据”。
通常没有机会直接编辑其他表(其他模型)中的值。
如果您希望相关模型作为可编辑文本字段显示在 Django 管理中,您应该查看 Django 管理“内联”类。您需要为 ClientBasicData 定义内联,然后从 ClientAdmin 中引用该数据。
注意:您正在尝试做的事情看起来您的模型设计可能存在更根本的问题。您可能需要考虑一下组织这些数据的其他方式(即,真的有理由将“基本数据”放在另一个表中吗?)。
以上就是Django 中如何让一个类继承另一个类的元素?的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756