Guest User

Untitled

a guest
Mar 21st, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. class ProblemsInContest(CreateUpdateDateModel):
  2. contest = models.ForeignKey(Contest)
  3. problem = models.ForeignKey(ContestProblem)
  4.  
  5. class Meta:
  6. verbose_name = "Problem in Contest"
  7. verbose_name_plural = "Problems in Contest"
  8.  
  9. def __str__(self):
  10. return "{problem}".format(problem=self.problem)
  11.  
  12. class ContestProblemInline(admin.TabularInline):
  13. model = ProblemsInContest
  14. extra = 1
  15.  
  16.  
  17. class ContestAdmin(admin.ModelAdmin):
  18.  
  19. inlines = [
  20. ContestProblemInline,
  21. ]
  22.  
  23. class ContestProblemInline(admin.TabularInline):
  24.  
  25. model = ProblemsInContest
  26.  
  27. def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
  28.  
  29. field = super(RoomInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
  30.  
  31. if db_field.name == 'your_field_name':
  32. if request._obj_ is not None:
  33. field.queryset = field.queryset.filter(your_field_name = request._obj_)
  34. else:
  35. field.queryset = field.queryset.none()
  36.  
  37. return field
  38.  
  39.  
  40.  
  41. class ContestAdmin(admin.ModelAdmin):
  42.  
  43. inlines = (ContestProblemInline,)
  44.  
  45. def get_form(self, request, obj=None, **kwargs):
  46. # just save obj reference for future processing in Inline
  47. request._obj_ = obj
  48. return super(ContestAdmin, self).get_form(request, obj, **kwargs)
Add Comment
Please, Sign In to add comment