【问题标题】:django : unique name for object within foreign-key setdjango:外键集中对象的唯一名称
【发布时间】:2010-10-14 12:17:09
【问题描述】:

我正在尝试为文章模型上传文件。由于一个对象可以有多个图像,我使用从文件模型到我的文章模型的外键。但是,我希望所有文件都有唯一的标题。这里是代码 sn-p。

class Article(models.Model):
    name = models.CharField(max_length=64)

class Files(models.Model):
    title = models.CharField(max_length=64)
    file = models.FileField(upload_to="files/%Y/%m/%d/")
    article = models.ForeignKey(Article)

现在,当我上传文件时,我希望文件标题在文章的“foreign_key”集中是唯一的,而不一定在文件的所有对象中是唯一的。有没有办法可以自动设置文件的标题?最好是相关文章和增量整数的某种组合!我打算只从管理界面上传文件,并且文件在文章管理表单中设置为内联。

【问题讨论】:

  • 在不知道哪个 django 版本的情况下很难给出建议。
  • 其最新版本 1.2.3

标签: python django file-upload foreign-keys admin


【解决方案1】:
def add_file(request, article_id):            
    if request.method == 'POST':  
        form = FileForm(request.POST, request.FILES)  
        if form.is_valid():  
            file = form.save(commit=False)  
            article = Article.objects.get(id=article_id)  
            file.article = article  
            file.save()  
            file.title = article.name + ' ' + file.id  
            file.save()  
            redirect_to = 'redirect to url'  
            return HttpResponseRedirect(redirect_to)      

【讨论】:

  • 不错的方法。但我试图设置文件的“标题”,而不是文件名本身。有没有办法使文件标题依赖于外键文章的名称?
  • @Neo - 你必须小心,因为多个文件可能属于同一个文章。
  • 没错,这就是为什么标题应该基于Article-Name + Some Integer。我意识到这需要在 Django 中进行一些调整,因为首先创建内联对象,然后在创建主对象后设置它们的前键。有解决办法吗?
  • “文件”字段和“标题”字段有什么区别?标题是否代表文件名?
  • 在显示文章对象时,我想在文本框中显示文件内容,并将标题用作文本框的标题。当然,如果用户提供了他/她自己的标题,那么“自动生成”的标题应该被覆盖。
猜你喜欢
  • 2011-05-30
  • 2021-09-30
  • 2023-03-27
  • 2021-09-21
  • 1970-01-01
  • 1970-01-01
  • 2021-05-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多