Python 按名称查找表-Django
如何在python代码中按名称查找表 例如:Python 按名称查找表-Django,python,django,orm,Python,Django,Orm,如何在python代码中按名称查找表 例如: class AlexAlex(models.Model): title = models.CharField(max_length=255) message = models.TextField() dataMsg = models.DateField() fromMsg = models.CharField(max_length=255) readMsg = models.BooleanField(defa
class AlexAlex(models.Model):
title = models.CharField(max_length=255)
message = models.TextField()
dataMsg = models.DateField()
fromMsg = models.CharField(max_length=255)
readMsg = models.BooleanField(default=False)
def __str__(self):
return self.title
现在我想找到类名,因为它有一些用户名
代码中的示例:
UserLogged = "AlexAlex" or UserLogged = "Alex alex" + "s" // Example name user logged
Table = functionWhichFindTablebyName(UserLogged) // Find table by name
Table.objects.get.all()
我可以这样做吗?我想让“邮箱用户”使用它。我有很多表,我不想在导入/从中编写手册。我觉得这反映了一个执行不好的东西,需要一秒钟。听起来像是在为每个用户创建一个表,并在其中存储该用户的消息,而此时您应该创建一个与
用户
相关的表消息
。也就是说,如果要从模块检索对象(表):
from any_app import models
getattr(models, "AlexAlex").objects.all()
Django还提供,它允许您在不导入模型的情况下完成所需的操作。例如
from django.contrib.contenttypes.models import ContentType
obj = ContentType.objects.get(app_label="any_app", model="alexalex")
obj.model_class().objects.all()
# Or p.get_all_objects_for_this_type(kwargs)
好的,那么你认为最好的方法是创建一个表来显示所有消息,在每个选项消息中,哪个用户可以阅读此消息?我对你的应用程序一无所知。听起来我可能会做
Message.objects.filter(user=AlexAlex)
之类的事情。但我不知道。ContentType
存在合法用途,也许你的应用程序毕竟需要它。这是标准的邮件信箱。我只需要采取所有的消息从基地和显示在网站上。但例如,我添加了另一行:toUserMsg=models.CharField(max_length=255)
如果消息需要发送给多个用户,现在该怎么办?如果我理解正确,“一个用户可以有多条消息,同一条消息可以由多个用户拥有”反映了一种多人关系。但这意味着,如果一条消息被删除/修改,它会影响其他用户。如果每个用户都应该在不影响其他用户的情况下独占控制其所有消息,那么这是一种多人关系,但为每个用户创建消息副本(我怀疑您正在做的就是将同一消息插入不同的表中)。消息可以是只读的。您更喜欢多对多方法,还是每个用户都有一个单独的包含消息的表?哪一个更好、更优化?谢谢你的帮助。