Я выборка двух видов объектов из моей базы данных следующим образом:Извлечение объектов и объединение их в один списке
def browse_freelancers(request):
users = User.objects.filter(type=1)
freelancers = []
for user in users:
freelancers.append(Freelancer.object.get(user=user))
Это дает мне QuerySet пользователей и список фрилансеров. Исходя из списков Java или C#, и их простота использования всегда меня путала (по какой-то причине). Есть ли способ элегантно объединить QuerySet и список в один список, где объект User связан со своим связанным с ним объектом Freelancer?
#models.py
class Freelancer(models.Model):
def __unicode__(self):
return self.first_name
user = models.OneToOneField(User)
first_name = models.CharField(max_length=128)
surname = models.CharField(max_length=128)
university = models.CharField(max_length=256)
biography = models.TextField(default="")
skills = models.ManyToManyField(Skill, blank=True)
object = UserManager()
class User(AbstractBaseUser):
STATUS_CHOICES = (
(1, 'Freelancer'),
(2, 'Client'),
)
email = models.EmailField(unique=True)
type = models.IntegerField(choices=STATUS_CHOICES)
verify_key = models.CharField(unique=True, max_length=16, null=True)
verified = models.BooleanField(default=False)
created_date = models.DateTimeField(default=timezone.now)
USERNAME_FIELD = 'email'
objects = UserManager()
Я уверен, что есть способ сделать это без итерация 'users', но мы должны видеть отношения в модели, чтобы писать. Не могли бы вы добавить вам 'models.py'? – pythad
Добавлено как запрошено. – Nanor