2👍
Where you might run into problems is because Django will not recreate tables or columns based on changing model declarations. This means you’re unable to add fields to a table at run-time without running the generated sql on your database manually. What you’ll need, instead, is a way of defining custom fields, and linking them to your model.
What I’d suggest is the following:
class CustomField(models.Model):
name = models.CharField(max_length=32)
class Book(models.Model):
... fields
class CustomValue(models.Model):
field = models.ForeignKey(CustomField)
value = models.CharField(max_length=255)
book = models.ForeignKey(Book)
The validation on the above is fairly non-existant, and this doesn’t allow you to define required custom fields for each model, but you should be able to come up with that part if you need it later on.
# taken and modified from django online tutorial
class CustomValueInline(admin.StackedInline):
model = CustomValue
extra = 3
class BookAdmin(admin.ModelAdmin):
fieldsets = [
# your fields in here
]
inlines = [CustomValueInline]
admin.site.register(Book, BookAdmin)
This will allow users to select up to 3 custom fields and values directly, with the option to add more if they wish.
Edit: Changed the answer to reflect further information in comments.
0👍
For the beginning you can create one model for the book and one for the text field, both connected through a foreign key relation. You can easily administrate this then through django’s inline admins, which will enable you to add more text fields!
# models.py
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
class TextField(models.Model):
text = models.TextField
book = models.ForeignKey(Book)
# admin.py
from django.contrib import admin
from models import TextField, Book
class TextAdmin(admin.TabularInline):
model = TextField
class BookAdmin(admin.ModelAdmin):
inlines = [TextAdmin]
admin.site.register(Book, BookAdmin)
- [Answered ]-Does Django requery every time I access a related model?
- [Answered ]-Send Model Data through AJAX in Django
- [Answered ]-Redirecting pages in Django with regular expressions?
- [Answered ]-Django and getting info from query string using handlers