django:外键集合内对象的唯一名称

2 投票
1 回答
1143 浏览
提问于 2025-04-16 05:29

我正在尝试为一个文章模型上传文件。因为一个对象可以有多个图片,所以我使用了文件模型的外键来关联我的文章模型。不过,我希望所有的文件标题都是唯一的。下面是我的代码片段。

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)

现在,当我上传文件时,我希望文件的标题在“外键”关联的文章中是唯一的,而不一定要在所有文件对象中都是唯一的。有没有办法可以自动设置文件的标题?最好是将相关的文章和递增的数字结合起来!我打算只通过管理员界面上传文件,并且文件是在文章的管理员表单中以嵌套的方式设置的。

1 个回答

1

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,不知道该怎么解决。比如,有人可能在使用一个特定的功能时,发现它没有按照预期工作,或者出现了错误信息。这时候,我们可以去一些技术论坛,比如StackOverflow,寻求帮助。

在这些论坛上,很多人会分享他们的经验和解决方案。你可以看到其他人遇到的类似问题,以及他们是如何解决的。这些讨论通常会包含一些代码示例,帮助你更好地理解问题所在。

总之,遇到问题时,不要害怕去问,也不要觉得自己很笨。编程本来就是一个不断学习和解决问题的过程。通过查看别人的问题和答案,你会慢慢积累经验,变得越来越熟练。

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)      

撰写回答