我正在尝试使用Django和使用AbstractUser类的自定义用户来实现基本的登录系统。这是我的models.py:
from django.db import models
from django.contrib.auth.models import AbstractUser
class Stock(models.Model):
stock_name = models.CharField(max_length=10)
stock_price = models.FloatField()
def __str__(self):
return self.stock_name
class CustomUser(AbstractUser):
stocks = models.ManyToManyField(Stock)
def __str__(self):
return self.username
Run Code Online (Sandbox Code Playgroud)
我的forms.py:
from .models import CustomUser,Stock
from django.contrib.auth.forms import AuthenticationForm
class loginform(AuthenticationForm):
class Meta:
model = CustomUser
fields = ('username', 'password')
Run Code Online (Sandbox Code Playgroud)
我的views.py:
def successful_login(request, pk):
user = get_object_or_404(CustomUser, pk=pk)
return render(request, '../templates/stock_portfolio.html', {'user':user})
def loginview(request):
err=0
if request.method=="POST":
form = loginform(request.POST)
pdb.set_trace()
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个反馈表单,但我收到此错误: 无法解析剩余部分:'%csrf_token%'来自'%csrf_token%'
这是我的views.py:
def contact(request):
if request.method=='POST':
form=ContactForm(request.POST)
if form.is_valid():
topic=form.cleaned_data['topic']
message=form.cleaned_data['message']
sender=form.cleaned_data.get('sender')
send_mail(
'Feedback from your site,topic:%s'%topic,
message,
sender,
['jpahultiwari@gmail.com']
)
return HttpResponseRedirect('/contact/thanks/')
else:
form=ContactForm()
context={'form':form}
return render(request,'blog/contact.html',context)
Run Code Online (Sandbox Code Playgroud)
这是我的模板contact.html:
<!DOCTYPE html>
<html>
<head>
<title>Feedback Form</title>
</head>
<body>
<h1>Contact Us</h1>
<form action="." method="post" >
{{% csrf_token %}}
<table>{{form.as_table}}</table>
<p><input type="submit" value="Submit"></p>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)