【发布时间】:2023-11-24 00:07:02
【问题描述】:
这可能是一个简单的 Django 问题,但我希望我能得到一些建议。 admin.py 中的以下代码
class ExarbeteMomentInline(admin.TabularInline):
model = ExarbeteMoment
extra=0
class ExarbeteStudent(admin.TabularInline):
model = ExarbeteStudent
extra=0
class ExamensarbeteAdmin(admin.ModelAdmin):
list_display = ('title', 'start_date', 'end_date', 'company')
inlines = [ExarbeteMomentInline, ExarbeteStudent]
admin.site.register(Examensarbete,ExamensarbeteAdmin)
在管理面板中生成我想要的。
但我想要一个在管理面板之外的版本,以便普通用户可以输入数据。如何以最小的方式修改代码以在管理区域之外获得基本相同的页面?
谢谢,提前。
/添加/ 我的模型是:
class Examensarbete(models.Model):
title = models.CharField(max_length=10000,default='',blank=True)
start_date = models.DateField('startdatum')
end_date = models.DateField('slutdatum',blank=True,default='',null=True)
company = models.CharField(max_length=200,default='',blank=True)
comment = models.TextField(max_length=1000,default='',blank=True)
kurskod = models.CharField(max_length=100,default='FMAM05')
year = models.CharField(max_length=5,blank=True,default='',null=True)
class ExarbeteMoment(models.Model):
exarbete = models.ForeignKey(Examensarbete,on_delete=models.CASCADE)
typ = models.CharField(max_length=100)
person = models.ForeignKey(Personal,on_delete=models.SET_NULL,null=True)
tim = models.FloatField(null=True)
class ExarbeteStudent(models.Model):
exarbete = models.ForeignKey(Examensarbete,on_delete=models.CASCADE)
first_name=models.CharField(max_length=100)
last_name=models.CharField(max_length=100)
pnr = models.CharField(max_length=13)
program = models.CharField(max_length=5)
kull = models.CharField(max_length=5)
我在哪里删除了 str 和 Meta。我想我应该能够在下面的帮助下解决这个问题,但我仍然无法弄清楚我是如何在管理面板中得到什么的,上面是 Examensarbete,然后是 ExarbeteMoment 和 ExarbeteStudent 的两个子表单。还有“添加另一个项目”功能。
不幸的是,我是 Django 新手,发现使用表单和表单集特别困难。我不太清楚为什么,因为它们应该大大简化事情。
【问题讨论】:
-
可能我错了,但我不会让你知道这在管理区域之外是可能的。所有逻辑都需要自己创建,以获取列表并将条目添加到数据库
标签: django django-forms django-admin