I do not think having Author = model.ManyToMany will work.
A user is an author. An author is a user. This is a one to one  a.k.a 
models.ForeignKey(User)
A blog has many authors, of which each is a user. And Many Authors can 
write on a blog 

Blog.author = models.ManyToMany(Author)

On Friday, April 19, 2013 12:22:02 PM UTC-4, Laurent GARTNER wrote:
>
> Hi,
>
> I’m in trouble with model admin.
>
> I’ve create a CMS with Django and I try to add the last article editor, 
> but it doesn’t work if the user don’t add his name in the field.
>
> In model.py
>
> class Article(models.Model):
>
>                 …
>
>                 author = models.ManyToManyField(User, 
> verbose_name=u”auteur”, null=True, blank=True)
>
>                 author_text = models.CharField(u’auteurs’, null=True, 
> blank=True, max_lenght=254)
>
>  
>
> Note: author keeps real “author” of the aritcle, author_text is editable 
> to show another “author”
>
>  
>
>        def *save*(*self*, *args, **kwargs):
>
>  
>
>              # Si author_text est vide, le remplir avec l'auteur
>
>              if not *self*.author_text and *self*.id:
>
>                     author_text = list()
>
>                     for author in *self*.author.all():
>
>                            if author.first_name or author.last_name:
>
>                                   author_name = *" "*.join([author.last_name, 
> author.first_name])
>
>                            else:
>
>                                   author_name = author.username
>
>                            author_text.append(author_name)
>
>                     *self*.author_text = *", "*.join(author_text)
>
> In admin.py
>
>  
>
>        def *save_model*(*self*, request, obj, form, change):
>
>  
>
>              # Première sauvegarde pour attribuer un ID indispensable à 
> un M2M
>
>              obj.save()
>
>              super(ArticleAdmin, *self*).save_model(request, obj, form, 
> change)
>
>  
>
>              # Ajout de l'auteur à la liste
>
>              if not request.user in obj.author.all() or obj.author.all() 
> == None:
>
>                     obj.author.add(request.user)
>
>                     obj.save()
>
>  
>
> When I create a new article in admin site, author_text gets author 
> username (as I expect with my save model), but author stay empty ! If I 
> look at the article during “save_model”, author get the user, but after 
> “save”, author is null (as in form).
>
> How can I force author field to record the last author ? can I update 
> admin form with a default author value ?
>
>  
>
> Thanks for the answer
>
> Garthh
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to