Python django检查模型表是否有对象
我有一个像贝娄这样的模特Python django检查模型表是否有对象,python,django,Python,Django,我有一个像贝娄这样的模特 class User(BaseModel,DjangoUser): uuid = models.CharField(max_length=100, blank=True) realname = models.CharField(max_length=100, blank=True) followers = models.ManyToManyField('self', through='FollowRelationship', symmetrica
class User(BaseModel,DjangoUser):
uuid = models.CharField(max_length=100, blank=True)
realname = models.CharField(max_length=100, blank=True)
followers = models.ManyToManyField('self', through='FollowRelationship', symmetrical=False, related_name='followed_by')
def follow(self, person):
relationship, created = FollowRelationship.objects.get_or_create(from_person=self,to_person=person)
return created
def unfollow(self, person):
fs = FollowRelationship.objects.filter(from_person=self,to_person=person)
if fs is not None:
fs.delete()
return True
return False
class FollowRelationship(models.Model):
from_person = models.ForeignKey(User, related_name='from_user')
to_person = models.ForeignKey(User, related_name='to_user')
follow_time = models.DateTimeField(default=datetime.datetime.now)
如果我有两个用法A和B,我会在B.followers.all()中使用A来检查A是否在B之后。
如果B.followers有10000000个对象,那么这样做好吗
另一个问题是,如果我在我的(android)应用程序中跟踪某个用户,B.followers.all()中的a将在一段时间内返回false,然后返回true。如果我重新启动django服务器,它将立即变为现实。有什么问题吗?从文档中可以看出,它更合适、更快
您可以按以下方式进行检查:
if B.followers.filter(from_person=A).exists():
对于第二个问题,可能是django queryset缓存问题。从某种角度看是这样吗