Python 如何使用外键和内联线创建表单

Python 如何使用外键和内联线创建表单,python,django,django-forms,Python,Django,Django Forms,我只是想制作一个轮询应用程序,只想有一个简单的HTML页面,在那里我可以有poll\u text和3/4choice\u text字段 目前我的模型如下 #models.py class Poll(models.Model): user = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null = True ) poll_text = models.CharF

我只是想制作一个轮询应用程序,只想有一个简单的HTML页面,在那里我可以有
poll\u text
和3/4
choice\u text
字段

目前我的模型如下

#models.py
class Poll(models.Model):
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null = True
    )
    poll_text = models.CharField((""), max_length=250)
    pub_date = models.DateTimeField(default=timezone.now)


    def __str__(self):
        return self.poll_text

class Choice(models.Model):
    poll = models.ForeignKey(Poll, on_delete=models.CASCADE, default = '')
    choice_text = models.CharField( max_length=200)
    no_of_votes = models.IntegerField(default = 0)
    
    def __str__(self):
        return self.choice_text
这就是我的
forms.py
的样子

#forms.py
from django.forms import ModelForm
from .models import Poll, Choice

class CreatePollForm(ModelForm):
    class Meta:
        model = Poll
        fields = ('poll_text',)
最后,
admin.py
,看起来像这样,这在localhost/admin中为我提供了正确的表示,并且在HTML页面中提供了我想要的表示

#admin.py
from django.contrib import admin
from .models import Poll, Choice
from django.contrib.auth.models import User
# Register your models here.

class ChoiceInLine(admin.TabularInline): 
    model = Choice 
    extra = 5


class PollAdmin(admin.ModelAdmin):
    
    fieldsets = [(None, {'fields': ('user','poll_text',)})]
    inlines = [ChoiceInLine] 


请指导我需要做哪些更改,还请建议我如何调整我的模型,以记录用户对此投票的投票记录。

您必须创建一个html、URL和视图文件。应该是这样的

index.html

<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        {% for i in list%}
           {{i.poll}}
           {{i.choice_text}}
        {% endfor%}
    </body>
</html>
url.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',app.views.index,name='index'),   #here you should change to the name off your current app
   ]

我可能会有一些打字错误,但应该是这样。

如果你有问题的话,我不确定。我想有一个HTML,它会给你一个字段,添加一个投票的文本和一些选择。这些选择应该与后端的民意测验相联系。因此,你必须做一些研究,你不能要求别人提供完整的代码。如果他们试图帮助你,应该感谢他们帮助了你,而不是为此责备你。祝你的项目玩得愉快,我相信你可以独自解决所有问题。
urlpatterns = [
    path('admin/', admin.site.urls),
    path('',app.views.index,name='index'),   #here you should change to the name off your current app
   ]