Django - assign m2m relationship in admin -


in app i'm building users have role "coder" , assigned "assignments".
can't seem working process of admin assigning coders assignments.

here model-code have far (probably totally wrong):

class coder(models.model): """every user can coder. coders assigned assignments""" user = models.onetoonefield(user)  class admin:     list_display = ('',)     search_fields = ('',)  def __unicode__(self):     return u"coders"  class assignment(models.model): """(assignment description)""" title = models.charfield(blank=true, max_length=100) start_year = models.integerfield(blank=true, null=true) end_year = models.integerfield(blank=true, null=true) country = models.integerfield(blank=true, null=true) coders = models.manytomanyfield(coder)  class admin:     list_display = ('',)     search_fields = ('',)  def __unicode__(self):     return u"assignment" 

and admin-code:

class assignmentcoderinline(admin.stackedinline): model = assignment.coders.through can_delete = false verbose_name_plural = 'coder'  class assignmentadmin(admin.modeladmin): fieldsets = [     ('assignment', {'fields': ['title', 'start_year', 'end_year']}) ] inlines = (assignmentcoderinline,)  class coderinline(admin.stackedinline): model = coder can_delete = false verbose_name_plural = 'coder' 

now, when i'm in admin, want create assignment , add coders it. yet see when trying this:
this see in admin

how can add 1 coder/user assignment, can later show him in view assignments has? dumb question, please answer anyways, appreciate :)

if i'm not mistaken, looks want call coder view, , show assignments user.

first, might start assigning related_name coder , assignment models relationships each other, can reference them later.

class assignment(models.model):     coders = models.manytomanyfield(coder, related_name='assignments')  class coder(models.model):     user = models.onetoonefield(user, related_name="coder") 

i'd reference user in template such using one 1 relationship:

    {% assignment in user.coder.assignments.all %} 

also, looks problem how you've got yout models setup. after reviewing django.db.models.base "models.model" class , "modelbase" class, looks there no "admin" subclass. you'll want remove start with.

next, __unicode__ field shows default visible value represents object on screen. in case, you've forced "coders". if had 5 coders assignment, you'd see "coders, coders, coders, coders, coders" instead of "admin, user1, bob22, harry8, stadm1in", etc. let's override unicode show more meaningful. since coders field has user field, let's reference self.user.username. we'll change assignment()'s unicode self.title well.

modelform doesn't have 'admin' subclass either, let's remove that.

models:   class coder(models.model):     """every user can coder. coders assigned assignments"""     user = models.onetoonefield(user, related_name='coder')      def __unicode__(self):         return self.user.username   class assignment(models.model):     """(assignment description)"""     title = models.charfield(blank=true, max_length=100)     start_year = models.integerfield(blank=true, null=true)     end_year = models.integerfield(blank=true, null=true)     country = models.integerfield(blank=true, null=true)     coders = models.manytomanyfield(coder, related_name='assignments')      def __unicode__(self):         return self.title   admin:  class assignmentcoderinline(admin.stackedinline):     model = assignment.coders.through     can_delete = false  #   verbose_name_plural = 'coder'  class assignmentadmin(admin.modeladmin):     fieldsets = [         ('assignment', {'fields': ['title', 'start_year', 'end_year']})     ]     inlines = (assignmentcoderinline,) 

Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -