2012-08-29 63 views
0

我有一个简单的模型,女巫用作一种形式。如何添加照片

class Test(models.Model): 
    name = models.CharField(max_length=100, unique=True, db_index=True) 
    location = models.CharField(max_length=300) 
    details = models.TextField() 
    def __unicode__(self): 
     return self.image.name 

我想下面的类专辑作为外键添加到测试:

class Album(models.Model): 
    title = models.CharField(max_length=60) 
    public = models.BooleanField(default=False) 
    def __unicode__(self): 
     return self.title 

class Tag(models.Model): 
    tag = models.CharField(max_length=50) 
    def __unicode__(self): 
     return self.tag 

class Image(models.Model): 
    title = models.CharField(max_length=60, blank=True, null=True) 
    image = models.FileField(upload_to="images/") 
    tags = models.ManyToManyField(Tag, blank=True) 
    albums = models.ManyToManyField(Album, blank=True) 
    created = models.DateTimeField(auto_now_add=True) 
    rating = models.IntegerField(default=50) 
    width = models.IntegerField(blank=True, null=True) 
    height = models.IntegerField(blank=True, null=True) 
    user = models.ForeignKey(User, null=True, blank=True) 
    def __unicode__(self): 
     return self.image.name 

问题:

  1. 如何类相册添加为FOREIGH关键类测试?

  2. 如何把这种关系放在窗体上? - 例如用户正在选择多个图像进行上传,从而产生与测试类相关的唯一相册。

+1

什么是测试模型的目的是什么? –

回答

0

你的意思是这样的外键

class Test(models.Model): 
    name = models.CharField(max_length=100, unique=True, db_index=True) 
    location = models.CharField(max_length=300) 
    details = models.TextField() 
    album = models.ForeignKey(Album, null=True, blank=True) 
    def __unicode__(self): 
     return self.name 
+0

Yeap,但第二个问题依然存在:) 2.如何将这种关系放在窗体上? - 例如用户正在选择多个图像进行上传,从而产生与测试类相关的唯一相册。 – user1632928

+0

您使用内联表单:https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#inline-formsets –

+0

@Chris Pratt 我无法使其工作。这个想法很简单。我想有一个与外键相关的两个模型。我设法按照给定的例子,但它不是我所期望的) 我希望用户填充一些数据以用于测试和相册,但毕竟所有的测试和相册实例都应该在数据库中进行连接。 也许有可能创建两个forms.ModelForm的inlineformset_factory? – user1632928