Reputation: 3910
Currently i have the transfer model as followed:
class Transfers(models.Model):
class Meta:
db_table = "transfers"
verbose_name = 'Transfer'
verbose_name_plural = 'Transfers'
user = models.ForeignKey("backend.User", null=True, blank=True, related_name='user_transfer', on_delete=models.CASCADE)
to_account = models.ForeignKey("backend.User", null=True, blank=True, related_name='user_transfer_to_account', on_delete=models.SET_NULL)
A transfer object need to have from one user transfer to another user so i need to use the same User model
And in my admin.py:
class TransfersInline(admin.StackedInline):
model = Transfers
can_delete = False
extra = 0
max_num=0
form = TransfersAdminForm
class UserAdminCustom(admin.ModelAdmin):
exclude = ('password', 'last_login', 'is_superuser', 'is_staff', 'groups',
'user_permissions', 'username', 'first_name', 'last_name', 'is_active', 'date_joined')
inlines = [
TransfersInline,
]
def get_queryset(self, request):
qs = super(UserAdminCustom, self).get_queryset(request)
return qs.filter(is_staff=False)
def get_readonly_fields(self, request, obj=None):
return ('id', 'created', 'modified')
admin.site.register(User, UserAdminCustom)
In my admin i would like to display transfers inline that the User existed in user
field of Transfers
model but inline can't have multiple foreign key to the same model:
<class 'backend.admin.TransfersInline'>: (admin.E202) 'backend.Transfers' has more than one ForeignKey to 'backend.User'
My question is how do i only make TransfersInline use foreign key from user
field instead of to_account
field ? (transfer inline will have all the transfers object that the User is in user field )
Upvotes: 2
Views: 2023