2010-10-14 22 views
1

J'essaye de télécharger des fichiers pour un modèle d'article. Puisqu'un objet peut avoir plusieurs images, j'utilise une clé étrangère du modèle de fichier à mon modèle d'article. Cependant, je veux que tous les fichiers aient des titres uniques. Herez l'extrait de code.django: nom unique pour l'objet dans l'ensemble de clés étrangères

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) 

Maintenant, quand je télécharger les fichiers, je veux les titres de fichiers à être unique dans l'ensemble « FOREIGN_KEY » de l'article, et pas nécessairement parmi tous les objets de fichiers. Est-il possible de définir automatiquement le titre des fichiers? De préférence à une combinaison d'articles connexes et d'entiers incrémentaux !! J'ai l'intention de télécharger les fichiers uniquement à partir de l'interface d'administration, et les fichiers sont définis Inline dans le formulaire d'administration article.

+0

Son difficile à conseiller sans savoir quelle version django. –

+0

Sa dernière version 1.2.3 – Neo

Répondre

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)  
+0

Belle approche. Mais j'essayais de définir le "titre" du fichier, plutôt que le nom de fichier lui-même. Existe-t-il un moyen de rendre le titre du fichier dépendant du nom de l'article foreignkey? – Neo

+0

@Neo - vous devez faire attention, car plusieurs fichiers peuvent appartenir au même article. –

+0

Exactement, c'est pourquoi le titre devrait être basé sur le nom d'article + un certain nombre. Je me rends compte qu'il faudra un peu de peaufinage dans Django, puisque les objets Inline sont créés en premier, et que leur clé d'entrée est définie après la création de l'objet principal. Y at-il un travail autour? – Neo