首页 > 解决方案 > 使用 f 字符串的 django 消息语法错误

问题描述

我试图在我的网站用户注册时向他们发送消息我使用了 django 消息导入但我没有工作

这是我的views.py代码

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.http import HttpResponse
from django.shortcuts import render, redirect
from .models import cooking
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import login, logout, authenticate
from django.contrib import messages

# Create your views here.



def homepage(request):
    return render(request=request,template_name='main/home.html',context={"cooking": cooking.objects.all})

def register(request):
    if request.method == "POST":
        form = UserCreationForm(request.POST)
        if form.is_valid():
            user = form.save()
            username = form.cleaned_data.get('username')
            messages.succees(request, f"new account created: {username}")#error on this line

            login(request, user)
            return redirect("main:homepage")
        else:
            for msg in form.error_messages:
                messages.error(request, form.error_messages[msg])
    form = UserCreationForm
    return render(request,"main/register.html",context={"form":form })


标签: pythondjango

解决方案


f-strings已在 Python 3.6 中引入,您可能使用的是以前的版本。

如果你真的想使用它们,你可以安装future-fstrings,但我不确定它是否值得。

一个可能更好的解决方案是将 Python 升级到更高或等于 3.6 的版本,或者使用其他格式选项之一:

  • "new account created: {}".format(username)
  • "new account created: %s" % username

推荐阅读