我是django和django rest框架的新手。请原谅我的英语不好...我试图把两个django模型联系起来:
- 第一个(ModulMess类)从远程编号模块接收消息
- 模块A收到消息"AAA"-模块B收到消息"BBB"-模块A收到消息"CCC"-模块C收到消息"DDD"
- 第二个类(类Owner)是拥有模块的用户列表
- 用户XX拥有模块A和模块C-用户YY拥有模块B
我正在尝试使搜索过滤器,以便为实际用户列出这类消息:
For example, for UserXX:
UserXX received from moduleA messages "AAA" and "CCC"
and from moduleC message "DDD"
请你解释我理论上如何管理它?我不能想象如何使两个模型之间的关系,因为他们有一个平等的领域每一个...
非常感谢!
我试过:
class Owner(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE,related_name='usermod')
modulkey = models.CharField(max_length=255)
date_in = models.DateTimeField(default=timezone.now, blank=True)
def __str__(self):
return f'{self.user.first_name} {self.user.last_name} | {self.modulkey}'
class ModulMess(models.Model):
modulkey = models.ForeignKey(Owner, on_delete=models.CASCADE)
date_ini = models.DateTimeField(default=timezone.now, blank=True)
message = models.CharField(max_length=255)
但无法达到实现一个好的串行化器,也不能查看...
1条答案
按热度按时间vs91vp4v1#
我认为你的模型是正确的。你还需要正确的查询集逻辑,你已经准备好了。但是我会尽量提供视图集和序列化器。
虽然ModuleMess模型中的FK modulkey可以更改为owner,因为这样更有意义:
查询逻辑可以在不同的函数中定义,如下所示:
然后对于序列化器,我们可以使用模型序列化器类。如下所示:
最后,视图集如下所示: