2016-04-11 24 views
0

django admin tabular-inline admin interface kullanıyorum.django admin tabularinline limit yabancı anahtar seçim alanları

model.py

class Issues(TimeStampedModel): 
    issue_owner = models.ForeignKey(USER_MODEL, related_name='issue_owner') 
    issue_no = models.CharField(max_length = 500, null = True, blank = True) 

class IssueComments(TimeStampedModel): 
    comment_owner = models.ForeignKey(USER_MODEL, related_name='comment_owner') 
    issue = models.ForeignKey(Issues, null=True, blank=True) 
    comment = models.TextField(null=True, blank=True) 

Ben yönetici sekmeli olmayan satır içi kullanmaya çalışıyorum

admin.py

class IssueCommentsAdmin(admin.TabularInline): 
    model = IssueComments 
    extra = 1 

    def formfield_for_foreignkey(self, db_field, request=None,**kwargs): 
     field = super(IssueCommentsAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) 
     if db_field.name == 'comment_owner': 
      if request.user is not None: 
       field.queryset = field.queryset.filter(username = request.user.username) 
       if not field.queryset: 
        field.queryset = field.queryset.all() 
      else: 
       field.queryset = field.queryset.none() 
     return field 

class IssuesAdmin(admin.ModelAdmin): 
    model = Issues 
    list_display = ('issue_no', 'title', 'owner_phone_number', 'status', 'issue_priority', 'classification') 
    inlines = [ IssueCommentsAdmin ] 

    def render_change_form(self, request, context, *args, **kwargs): 
     context['adminform'].form.fields['assigned_to_user'].queryset = User.objects.filter(is_staff=True) 
     return super(IssuesAdmin, self).render_change_form(request, context, args, kwargs) 

ben sadece kullanıcıya oturum için comment_owner kısıtlamak istiyorsanız seçim alanlı. Bunu da yapabilirim ama burada karşılaştığım konu olan yorumların hangisi olduğunu zaten içeren comment_owner olduğu gibi tutmak istiyorum. Burada comment_owner olan yorumlar önceden seçilmiyor.

+0

PLS hatası göster, teşekkürler –

+0

Herhangi bir hata alma değil ama comment_owner hangi yorum sahibinin zaten atandığını boş gösteriyor. – Gaurav

+0

ru emin hakkında: belki field.queryset.filter (username = request.user.username): qs = super (IssueCommentsAdmin, kendinden) .get_queryset (istek) dönüş qs.filter (issue_owner = request.user .İD) –

cevap

0

herkes

Sen admin.py başka Modeli Yönetici sınıf oluşturmak ve bu nesne için izinleri vermelidir için, biraz geç ama. Sınıflarınızı değiştirmenizi tavsiye ederim.

Bu şekilde
class IssueCommentsInline(admin.TabularInline): 
    ... 

class IssueCommentsAdmin(admin.ModelAdmin): 
    ... 

admin.site.register(IssueComments,IssueCommentsAdmin) 

, sen get_field_queryset ile get_queryset ve saha verileriyle tüm verileri düzenleyebilirsiniz.