Ich benutze django Admin Tabular-Inline-Admin-Schnittstelle.django admin tabularinline Grenze Fremdschlüssel Auswahlfelder
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)
Ich versuche, tafel inline in Admin zu verwenden
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)
Ich möchte die comment_owner beschränken, um nur angemeldeten Benutzern in Wahl-Feld. Ich bin in der Lage, das auch zu tun, aber Problem, das ich hier gegenüberstelle, ist für die Kommentare, die bereits den comment_owner haben, den ich behalten will, wie es ist. Hier werden Kommentare, die comment_owner haben, nicht vorselektiert.
PLS zeigen den Fehler, danke –
Es wird kein Fehler angezeigt, aber comment_owner wird leer, für welchen Kommentar Besitzer bereits zugewiesen ist. – Gaurav
ru sicher: field.queryset.filter (username = request.user.username) vielleicht: qs = Super (IssueCommentsAdmin, Selbst-) .get_queryset (Anfrage) return qs.filter (issue_owner = request.user .Ich würde) –