use this code for ManytoMany fields in django admin :
filter_horizontal = ('groups', 'user_permissions',)
On Fri, Nov 3, 2017 at 1:45 PM, Paul <[email protected]> wrote:
> I have a Product model, an Image Model and a Category Model.
>
> A Product can have multiple Images(Foreign Key) and a Product can be in
> multiple Categories a Category can contain multiple Products.
>
> A Category can have multiple subcategories(key to itself).
>
>
> class Category(MetaData):
> parent = models.ForeignKey('self', blank=True, null=True,
> verbose_name='parent
> category', on_delete=models.CASCADE)
>
> class ProductMetaData):
> categories = models.ManyToManyField(Category)
>
> class ProductImage(models.Model):
> product = models.ForeignKey(Product, related_name='image', on_delete=
> models.CASCADE)
>
>
>
> In Product Django Admin:
>
> class ProductDocumentInline(admin.TabularInline):
> model = ProductDocument class ProductAdmin(MetaData):
> inlines = [ProductImageInline]
> fieldsets = (
> ('Product Data', {
> 'fields': ('name', 'short_description', 'description')
> }),
> ('SEO', {
> 'classes': ('collapse',),
> 'fields': ('meta_title', 'meta_description', 'slug', 'canonical')
> }),
> ('MetaData', {
> 'classes': ('collapse',),
> 'fields': (('created_at', 'created_by'), ('updated_at', 'updated_by'))
> }),
> )
> readonly_fields = ('created_at', 'updated_at', 'created_by', 'updated_by'
> )
> list_display = ('name', 'updated_at')
> ordering = ('-updated_at',)
> search_fields = ('name',)
>
>
> admin.site.register(Product, ProductAdmin)
> admin.site.register(ProductImage)
>
>
>
> Issues:
>
> 1.
>
> If I don't customize fieldsets (grouped, ordered) the Categories
> appear like default in the middle of the form. If there are customized as
> in my example they don't appear.
> 2.
>
> If they don't appear Products without Categories can be created and I
> don't want that. I want a product to have at least one category.
> 3.
>
> Now the inline Images appear below all Product fields.
>
> I want the Categories to appear first, then normal fields for
> Product(grouped,ordered), Images inline and at the end the SEO and metadata
> fields. How can this be done ?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/37bf83ae-cdca-4c73-8ace-747386513e53%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/37bf83ae-cdca-4c73-8ace-747386513e53%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/CACOk0Tz4qDf_jb%2BRN8VRZyc3gxWaXY%2By-tV%3DfpgQY4DHPE-f%3DA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.