2015-08-06 5 views
2

Я пытаюсь создать простой центр загрузки с бухгалтерией. У меня есть User и Filemodel так:Как получить список всех ForeignKey's в django

class File(models.Model): 
    name = models.CharField(max_length=100) 
    path = models.CharField(max_length=255) 
    short_discripton = models.TextField(max_length=500, null=False) 
    upload_date = models.DateTimeField("Uploaded Date", auto_now_add=True) 
    def upload_date(self): 
     return timezone.datetime.now() 
    def __unicode__(self): 
     return self.name 


class User(models.Model): 

    username = models.CharField(max_length=25, null=False, blank=False) 
    password = models.CharField(max_length=255, null=False, blank=False) 
    user_path = models.CharField(max_length=255, null=False, blank=False) 
    first_name = models.CharField(max_length=50, null=False, blank=False) 
    last_name = models.CharField(max_length=60, null=True, blank=True) 

    creation_date = models.DateTimeField("Register Date", auto_now_add=True) 
    files = models.ForeignKey(File, null=True, blank=True) 
    def __unicode__(self): 
     return self.userna 

меня

Но когда я пытаюсь извлечь файлы с помощью:

all_user_files = File.objects.get(pk=user.id) 

Это только возвращает один из файлов, хотя больше файлов в базе данных (проверка панели администратора).

И другой путь, когда я использую:

user_all_files = user.files_set.all() 

Это поднимет ошибку:

'User' object has no attribute 'files_set' 

Я действительно путают с that.Is есть ли другой способ?

ответ

4

Вы должны удалить files = models.ForeignKey(File, null=True, blank=True)

И добавить в файл (модель) user= models.ForeignKey(User)

пример здесь docs.djangoproject.com/en/1.8/topics/db/examples/many_to_one

+0

почему? Я хочу, чтобы у пользователя были свои собственные файлы. –

+1

Конечно, пример здесь https://docs.djangoproject.com/en/1.8/topics/db/examples/many_to_one/ –

Смежные вопросы