gpt4 book ai didi

python - Django 表格 :Post request is got but data is not saved

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:07 24 4
gpt4 key购买 nike

所以我正在尝试构建一个 Django 站点,该站点收集 Mod 应用程序以学习 Django Forms。除了我是个白痴,我不知道我在做什么。我正在尝试做的事情是收集并保存当前部分的表单数据,然后尝试在 Django Admin 中显示该数据,这是我尚未完成且不知道如何完成的部分。

当我填写表格时,我得到 [06/May/2017 19:38:29] "POST/modapp HTTP/1.1"200 2354

这是我的forms.py:

class Application(forms.ModelForm):



class Meta:
model = ModApplication
fields = ('discord', 'reddit', 'serverrank','finds','serverstay','active','timezone','reason','helped','help')


def __init__(self, *args, **kwargs):
super(Application, self).__init__(*args, **kwargs)
self.fields['discord'].widget.attrs['placeholder'] = 'UnknownDeveloper#2068'
self.fields['reddit'].widget.attrs['placeholder'] = '/u/UnknownDeveloper'
self.fields['serverrank'].widget.attrs['placeholder'] = 'GEOCACHING + RANK'
self.fields['serverstay'].label = "How long have you been on the server"
self.fields['active'].label = "How active have you been on the server"
self.fields['timezone'].widget.attrs['placeholder'] = 'CET'
self.fields['reason'].label = "Why do you want to become a mod?"
self.fields['helped'].label = "How have you helped the server so far?"
self.fields['help'].label = "How will you help the server if you'll become a mod"

模型.py

class ModApplication(models.Model):
def __unicode__(self):
return "Discord User: " + self.discord + " aka " + self.reddit

reddit = models.CharField("Reddit Username", max_length=30)
discord = models.CharField("Discord Username", max_length=30)
serverrank = models.CharField("Server Rank", max_length=60)
finds = models.CharField("Finds", max_length=12)
serverstay = models.CharField("Stayed on the server for",max_length=200)
active = models.CharField("Is Actice on Discord for", max_length=500)
timezone = models.CharField("Timezone", max_length=20)
reason = models.TextField("He likes to become a mod because", max_length=5000)
helped = models.TextField("He helped by", max_length=5000)
help = models.TextField("He'll help by", max_length=5000)

View .py

def formtofill(request):
form = Application()
return render(request, 'appmod.html', {'form': form,})
if request.method == "POST":
form = Application(request.POST)
print(request.POST)
if form.is_valid():
user = form.save()
user.discord = request.discord
user.reddit = request.reddit
user.serverrank = request.serverrank
user.finds = request.finds
user.serverstay = request.serverstay
user.active = request.active
user.timezone = request.timezone
user.reason = request.reason
user.helped = request.helped
user.help = request.help
user.save()
print(user)
messages.success(request, 'Your Mod Application has been successfully submitted!')
print(form)
return HttpResponse('Successful')
else:
form_class = Application

我搜索了很多,但我没有找到任何东西。我试图打印调试消息,但它们没有打印任何内容。我放置了消息模块,但什么也没发生。 HTTPResponse 只是重新加载回表单。将很乐意接受帮助。谢谢你的时间。如果我遗漏了什么,请告诉我,我会编辑我的帖子

最佳答案

这段代码运行完全令人惊讶,它应该为这些产生属性错误:

    user.discord = request.discord
user.reddit = request.reddit

但它没有的原因是因为执行路径永远不会到达那个点

def formtofill(request):
form = Application()
return render(request, 'appmod.html', {'form': form,})

因为那个 return 语句。

你修改后的代码应该是这样的

def formtofill(request):

form = Application()

if request.method == "POST":
form = Application(request.POST)
print(request.POST)
if form.is_valid():
user = form.save()
messages.success(request, 'Your Mod Application has been successfully submitted!')
return HttpResponseRedirect('/success_url')
else:
form_class = Application
return render(request, 'appmod.html', {'form': form,})

关于python - Django 表格 :Post request is got but data is not saved,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43828763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com