我正在面对Django的一个有趣的情况,我希望有人会看到解决方案,或者至少可以给我一个暗示.
我正在尝试制作ModelForm模型 - 通用.我不知道这是否应该做,但在这里.
这很好用:
元组引用模型
# settings.py
SPECIES = (
('TIG', 'Tiger'),
('SHR', 'Shark'),
)
Run Code Online (Sandbox Code Playgroud)
用于创建Animal对象的URL
# urls.py
from django.conf.urls.defaults import patterns, include, url
urlpatterns = patterns('species.views',
url(r'^add/$', 'add_animal', name='add_animal'),
)
Run Code Online (Sandbox Code Playgroud)
动物模型和它的两个孩子
# models.py
from django.db import models
from django.conf import settings
class Animal(models.Model):
name = models.CharField(max_length=100)
nickname = models.CharField(max_length=100)
species = models.CharField(max_length=3, choices=settings.SPECIES)
class Tiger(Animal):
fangs_size = models.IntegerField()
class Shark(Animal):
color = models.CharField(max_length=20)
Run Code Online (Sandbox Code Playgroud)
显示表单的视图
通过GET参数选择正确的模型.
# views.py
def add_animal(request):
if request.method == "GET":
if request.GET['model_name']:
model_name = request.GET['model_name'] …Run Code Online (Sandbox Code Playgroud)