Fix issue #4832: 'OneToOneField' object has no attribute 'related'
parent
e53fd22919
commit
c53530f6e2
|
@ -44,11 +44,11 @@ class MembershipAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||||
if db_field.name in ["user", "invited_by"] and getattr(self, 'obj', None):
|
if db_field.name in ["user", "invited_by"] and getattr(self, 'obj', None):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
memberships__project=self.obj.project)
|
memberships__project=self.obj.project)
|
||||||
|
|
||||||
elif db_field.name in ["role"] and getattr(self, 'obj', None):
|
elif db_field.name in ["role"] and getattr(self, 'obj', None):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
project=self.obj.project)
|
project=self.obj.project)
|
||||||
|
|
||||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||||
|
@ -59,17 +59,17 @@ class MembershipInline(admin.TabularInline):
|
||||||
extra = 0
|
extra = 0
|
||||||
|
|
||||||
def get_formset(self, request, obj=None, **kwargs):
|
def get_formset(self, request, obj=None, **kwargs):
|
||||||
# Hack! Hook parent obj just in time to use in formfield_for_manytomany
|
# Hack! Hook parent obj just in time to use in formfield_for_foreignkey
|
||||||
self.parent_obj = obj
|
self.parent_obj = obj
|
||||||
return super(MembershipInline, self).get_formset(request, obj, **kwargs)
|
return super(MembershipInline, self).get_formset(request, obj, **kwargs)
|
||||||
|
|
||||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||||
if (db_field.name in ["user", "invited_by"]):
|
if (db_field.name in ["user", "invited_by"]):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
memberships__project=self.parent_obj)
|
memberships__project=self.parent_obj)
|
||||||
|
|
||||||
elif (db_field.name in ["role"]):
|
elif (db_field.name in ["role"]):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
project=self.parent_obj)
|
project=self.parent_obj)
|
||||||
|
|
||||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||||
|
@ -152,25 +152,18 @@ class ProjectAdmin(admin.ModelAdmin):
|
||||||
"default_priority", "default_severity",
|
"default_priority", "default_severity",
|
||||||
"default_issue_status", "default_issue_type"]):
|
"default_issue_status", "default_issue_type"]):
|
||||||
if getattr(self, 'obj', None):
|
if getattr(self, 'obj', None):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
project=self.obj)
|
project=self.obj)
|
||||||
else:
|
else:
|
||||||
kwargs["queryset"] = db_field.related.model.objects.none()
|
kwargs["queryset"] = db_field.related_model.objects.none()
|
||||||
|
|
||||||
elif (db_field.name in ["owner"]
|
elif (db_field.name in ["owner"]
|
||||||
and getattr(self, 'obj', None)):
|
and getattr(self, 'obj', None)):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
memberships__project=self.obj.project)
|
memberships__project=self.obj.project)
|
||||||
|
|
||||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||||
|
|
||||||
def formfield_for_manytomany(self, db_field, request, **kwargs):
|
|
||||||
if (db_field.name in ["watchers"]
|
|
||||||
and getattr(self, 'obj', None)):
|
|
||||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
|
||||||
memberships__project=self.obj)
|
|
||||||
return super().formfield_for_manytomany(db_field, request, **kwargs)
|
|
||||||
|
|
||||||
def delete_model(self, request, obj):
|
def delete_model(self, request, obj):
|
||||||
obj.delete_related_content()
|
obj.delete_related_content()
|
||||||
super().delete_model(request, obj)
|
super().delete_model(request, obj)
|
||||||
|
|
|
@ -34,7 +34,7 @@ class AttachmentAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||||
if (db_field.name in ["owner"]and getattr(self, 'obj', None)):
|
if (db_field.name in ["owner"]and getattr(self, 'obj', None)):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
memberships__project=self.obj.project)
|
memberships__project=self.obj.project)
|
||||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||||
|
|
||||||
|
|
|
@ -44,10 +44,10 @@ class EpicAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||||
if (db_field.name in ["status"] and getattr(self, 'obj', None)):
|
if (db_field.name in ["status"] and getattr(self, 'obj', None)):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(project=self.obj.project)
|
kwargs["queryset"] = db_field.related_model.objects.filter(project=self.obj.project)
|
||||||
|
|
||||||
elif (db_field.name in ["owner", "assigned_to"] and getattr(self, 'obj', None)):
|
elif (db_field.name in ["owner", "assigned_to"] and getattr(self, 'obj', None)):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(memberships__project=self.obj.project)
|
kwargs["queryset"] = db_field.related_model.objects.filter(memberships__project=self.obj.project)
|
||||||
|
|
||||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||||
|
|
||||||
|
|
|
@ -39,11 +39,11 @@ class IssueAdmin(admin.ModelAdmin):
|
||||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||||
if (db_field.name in ["status", "priority", "severity", "type", "milestone"]
|
if (db_field.name in ["status", "priority", "severity", "type", "milestone"]
|
||||||
and getattr(self, 'obj', None)):
|
and getattr(self, 'obj', None)):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
project=self.obj.project)
|
project=self.obj.project)
|
||||||
elif (db_field.name in ["owner", "assigned_to"]
|
elif (db_field.name in ["owner", "assigned_to"]
|
||||||
and getattr(self, 'obj', None)):
|
and getattr(self, 'obj', None)):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
memberships__project=self.obj.project)
|
memberships__project=self.obj.project)
|
||||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ class MilestoneInline(admin.TabularInline):
|
||||||
|
|
||||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||||
if (db_field.name in ["owner"]):
|
if (db_field.name in ["owner"]):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
memberships__project=self.parent_obj)
|
memberships__project=self.parent_obj)
|
||||||
|
|
||||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||||
|
|
|
@ -39,11 +39,11 @@ class TaskAdmin(admin.ModelAdmin):
|
||||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||||
if (db_field.name in ["status", "milestone", "user_story"]
|
if (db_field.name in ["status", "milestone", "user_story"]
|
||||||
and getattr(self, 'obj', None)):
|
and getattr(self, 'obj', None)):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
project=self.obj.project)
|
project=self.obj.project)
|
||||||
elif (db_field.name in ["owner", "assigned_to"]
|
elif (db_field.name in ["owner", "assigned_to"]
|
||||||
and getattr(self, 'obj', None)):
|
and getattr(self, 'obj', None)):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
memberships__project=self.obj.project)
|
memberships__project=self.obj.project)
|
||||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||||
|
|
||||||
|
|
|
@ -54,11 +54,11 @@ class UserStoryAdmin(admin.ModelAdmin):
|
||||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||||
if (db_field.name in ["status", "milestone", "generated_from_issue"]
|
if (db_field.name in ["status", "milestone", "generated_from_issue"]
|
||||||
and getattr(self, 'obj', None)):
|
and getattr(self, 'obj', None)):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
project=self.obj.project)
|
project=self.obj.project)
|
||||||
elif (db_field.name in ["owner", "assigned_to"]
|
elif (db_field.name in ["owner", "assigned_to"]
|
||||||
and getattr(self, 'obj', None)):
|
and getattr(self, 'obj', None)):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
memberships__project=self.obj.project)
|
memberships__project=self.obj.project)
|
||||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ class WikiPageAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||||
if (db_field.name in ["owner", "last_modifier"] and getattr(self, 'obj', None)):
|
if (db_field.name in ["owner", "last_modifier"] and getattr(self, 'obj', None)):
|
||||||
kwargs["queryset"] = db_field.related.model.objects.filter(
|
kwargs["queryset"] = db_field.related_model.objects.filter(
|
||||||
memberships__project=self.obj.project)
|
memberships__project=self.obj.project)
|
||||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue