首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django管理页面外部管理

Django管理页面外部管理
EN

Stack Overflow用户
提问于 2018-07-15 11:51:49
回答 1查看 936关注 0票数 1

这可能是一个简单的Django问题,但我希望我能得到一些建议。admin.py中的下列代码

代码语言:javascript
复制
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)

在管理面板中产生我想要的东西。

但是我想要一个管理面板之外的版本,这样常规用户就可以输入数据了。如何以最小的方式修改代码以获得管理员区域外的基本相同页面?

谢谢,提前。

/新增/我的模型如下:

代码语言:javascript
复制
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,发现使用表单和表单集特别困难。我不太清楚为什么,因为他们应该大大简化事情。

EN

回答 1

Stack Overflow用户

发布于 2018-07-15 21:23:23

我同意的评论--你需要自己编写函数。但是Django支持您使用表单和表单集来完成这项工作。由于您没有在问题中发布模型,我只能向您展示一个带有随机命名变量的示例:

代码语言:javascript
复制
class ExarbeteStudent(forms.Form):
    description = forms.CharField(widget=AdminTextareaWidget)
    date1 = forms.DateField(widget=AdminDateWidget)
    date2 = forms.DateField(widget=AdminDateWidget)
    task_list = Task.objects.all()

然后为内联模型创建一个表单集,如下所示

代码语言:javascript
复制
ExarbeteStudentFormSet = forms.formset_factory(ExarbeteStudent,
                                            extra=1,
                                            max_num=60,
                                            can_delete=True,

在这里,您可以找到更多关于表单和表单集的信息。

https://docs.djangoproject.com/en/2.0/topics/forms/formsets/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51348096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档