0
我想找到一種方法,可以在Queryset中使用多個模型。例如,在我的情況下,我有2個表格 - 照片和用戶。在Django中使用多個模型的自定義查詢集
class Photo(models.Model):
username = models.ForeignKey(User)
image = models.ImageField(upload_to='photos')
alt_text = models.CharField(max_length=255)
class DR_User(models.Model):
userid = models.ForeignKey(User)
follows = models.ManyToManyField('self', related_name='followed_by', symmetrical=False, blank=True)
objects = DR_User_Manager()
class DR_User_Query_Set(QuerySet):
def profile_pic(self):
# uid = self.userid
photo = Photo.objects.get(username=uid)
if photo.exists():
return photo.image.url
else:
return 'http://d12df125d01b8a258a3a-8112fdc02f7d385b44f56eb9e899d81c.r88.cf2.rackcdn.com/default.png'
def userinfo(self):
uid = self.userid
obj = User.objects.get(id=uid)
userinfo = obj.first_name + ' ' + obj.last_name
return userinfo.title()
class DR_User_Manager(models.Manager):
def get_query_set(self):
return DR_User_Query_Set(self.model)
def __getattr__(self, name):
return getattr(self.get_query_set(), name)
我的目標是創造DR_User自定義查詢集在那裏我可以得到用戶表(AUTH_USER),從照片表圖片網址的用戶信息...所以,當我使用 -
user = DR_user.objects.all()
我可以使用我的模板中的{{user.profile_pic}}和{{user.userinfo}}一次訪問它們。
難道你不能只是遍歷關係嗎? –
原諒我,如果我是一個noob,但你能給我一個例子嗎? –
假設你得到用戶user = User.objects.get(id = 1)'。從這個關係你可以去'user.photo_set.all()'獲取所有圖像。 –