在推断str相关模型时遇到问题...
有几个模型通过多对多连接:
用户模型
class WSCustomer(models.Model):
first_name = models.CharField('Имя', max_length=255)
def __str__(self):
return self.first_name
对象模型
class WSObject(models.Model):
title = models.CharField('Название', max_length=255)
customer = models.ManyToManyField(WSCustomer, related_name='own_object_customer', verbose_name='Заказчик', blank=True)
def __str__(self):
return f'Объект: {self.title} | Заказчик: {self.customer}'
结果,在管理面板和模板中,我得到以下信息:
Объект: Объект1 | Заказчик: ws_users.WSCustomer.None
但是如果你查看管理面板,那么客户的str会正常显示
细微差别
模型存在于不同的应用程序中。
我在同一个ws_users应用程序中有一个自定义用户模型和一个客户模型。
class WSUser(AbstractBaseUser):
和客户模型:
class WSCustomer(models.Model):
在settings.py 中,基本用户模型设置为AUTH_USER_MODEL = 'ws_users.WSUser'这可能以某种方式相关吗?此外,如果您创建的 ManyToMany 关系不是通向WSCustomer客户,而是通向WSUser基本用户模型(在str方法中也只返回first_name),那么结果不会改变(((
您有一个 connection
ManyToMany
,这意味着那里存储了几个对象。要通过 M2M 获取所有客户,请更改为如果总是有 1 个对象,那么
你试图显示的实际上是一个对象管理器