Django ManytoMany не отображается в админке - PullRequest
0 голосов
/ 09 мая 2020

Так как мои модели находятся в отношениях ManyToMany, соединение должно быть обоими способами, но это не так.

Например, в админке раздела BusinessProfile я могу видеть поля имени и изображения Services модели, как они находятся в отношениях ManyToMany, но это не так, как раз наоборот. Я не могу видеть поле BusinessProfile models в модели Services в админке.

Правильная ли структура моей модели?

Я также прикрепил изображения. BusinessProfile view in admin Services view in admin

models.py

class Service(models.Model):
    name = models.CharField(max_length=50)
    image = models.ImageField(upload_to='image', blank = True)
    #business_profile = models.ManyToManyField("BusinessProfile", blank=True, related_name="business_of_services")

    def __str__(self):
        return "Service - {}".format(self.name)


class BusinessProfile(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.CASCADE)
    business_name = models.CharField(max_length=100, unique =True)
    register_date = models.DateTimeField(default=timezone.now)
    pan_number = models.IntegerField(unique=True)
    pan_name = models.CharField(max_length=100)
    address = models.TextField(max_length=200)
    pincode = models.IntegerField()
    city = models.CharField(max_length=50)
    state = models.CharField(max_length=50)

    service  = models.ManyToManyField("Service", blank=True, related_name="services_of_business")
    image  = models.ManyToManyField("Service", related_name="image_of_business")

    def __str__(self):
        return "Business - {}".format(self.business_name)

1 Ответ

0 голосов
/ 09 мая 2020

Если вы хотите использовать реверсивное администрирование «многие ко многим», вы можете использовать встроенные. См. в этом документе .

Пример кода в документе.

from django.contrib import admin

class MembershipInline(admin.TabularInline):
    model = Group.members.through

class PersonAdmin(admin.ModelAdmin):
    inlines = [
        MembershipInline,
    ]

class GroupAdmin(admin.ModelAdmin):
    inlines = [
        MembershipInline,
    ]
    exclude = ('members',)
...