当前位置: 首页 > 知识库问答 >
问题:

关键字不能是表达式-视图

龙繁
2023-03-14

我试图用Django创建数据库并填充它的URL,但我得到了这个错误:

File "C:\Final\vj_2\vj_2\app_1\views.py", line 12
    'naslov'=naslov,
    ^ SyntaxError: keyword can't be an expression

我不知道我在这里遗漏了什么,为什么它不起作用。

这是我的看法:

def dodajClanak(request, naslov, datumObjave, autor):
    clan = Clanak(
        'naslov'=naslov,
        'datumObjave'=datumObjave,
        'autor'=autor
        )
    clan.save()#ako podaci nisu dobri throwat ce error
    return render(request, 'allapp.html', {'data': naslov + ' ' + datumObjave + ' ' + autor})

我的模型是:

class Clanak(models.Model):
    naslov = models.CharField(null=False, blank=True, max_length=120)
    #naslov = models.DecimalField(null=False, blank=False, decimal_places=1, max_digits=5)
    datumObjave = models.DateField(null=False, blank=False)
    autor = models.CharField(null=False, blank=True, max_length=50)

    def __str__(self):
        return str(self.naslov) + ', ' + str(self.datumObjave) + ', ' + str(self.autor)

完整错误日志

线程django主线程中的异常:回溯(最后一次调用):文件“c:\users\%username%\appdata\local\programs\python\python37-32\Lib\threading.py”,第917行,“bootstrap\u internal self.run()文件“c:\users\%username%\appdata\local\programs\python\python37-32\Lib\threading.py”,第865行,in-run-self.\u-target(*.*self.*self.*self.*文件“C:\Final\vj\u 2\venv\lib\site packages\django\utils\autoreload.py”,第54行,在包装fn(*args,**kwargs)文件“C:\Final\vj\u 2\venv\lib\site packages\django\core\management\commands\runserver.py”,第117行,在内部运行self中。检查(display\num errors=True)文件“C:\Final\vj\u\u\u\u\u\u\u 2\venv\lib\site packages\lib\dejango\core\management\base.py”,第390行,检查中包括部署检查=包括部署检查,文件“C:\Final\vj\u 2\venv\lib\site packages\django\core\management\base.py”,第377行,检查中运行检查返回检查。运行检查(**kwargs)文件“C:\Final\vj\u 2\venv\lib\site packages\django\core\checks\registry.py”,第72行,检查中运行检查新错误=检查(应用程序配置=应用程序配置)文件“C:\Final\vj\u 2\venv\lib\site packages\django\core\checks\url.py”,第13行,在check\u url\u config return check\u resolver(resolver)文件“C:\Final\vj\u 2\venv\lib\site packages\django\core\checks\url.py”的check\u方法()文件“C:\Final\vj\u 2\venv\lib\site packages\django\url\resolver.py”的第23行,第398行,检查self.url\u模式中的模式:文件“C:\Final\vj\u 2\venv\lib\site packages\django\utils\functional.py”,第80行,在get res=instance.dict[self.name]=self.func(实例)文件“C:\Final\vj\u 2\venv\lib\site packages\django\url\resolvers.py”中,第579行,在url\u patterns=getattr(self.urlconf\u模块,“urlpatterns”中,self.urlconf_模块)文件“C:\Final\vj_2\venv\lib\site packages\django\utils\functional.py”,第80行,在get res=instance.dict[self.name]=self.func(instance)文件“C:\Final\vj_2\venv\lib\site packages\django\url\resolvers.py”中,第572行,在urlconf模块返回导入_模块(self.urlconf.urlconf_名称)文件中“C:\Final\vj\u 2\venv\lib\importlib\uuuu init\uuuuuuuuuuuuuuuuy.py”,第127行,在导入模块返回引导过程中。第677行导入(名称[级别:],包,级别)文件“”,第1006行,在导入文件“”中,第983行,在查找和加载文件“”中,第967行,在查找和加载解锁的文件“”中,第728行,在执行模块中”,第219行,在带框架的调用文件“C:\Final\vj_2\vj_2\vj_2\vj_2\url.py”中,第18行,在从应用程序1导入视图文件“C:\Final\vj_2\vj_2\app_1\views.py”中,第12行'naslov'=naslov,^SyntaxError:关键字不能是表达式

url.py

from django.contrib import admin
from django.urls import path, re_path
from app_1 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('home/', views.home),
    re_path('add/(?P<naslov>[a-zA-Z]+/(?P<datumObjave>[0-9]+)/(?P<autor>[a-zA-Z]+', views.dodajClanak),
]

共有3个答案

祖奇
2023-03-14
def dodajClanak(request, naslov, datumObjave, autor):
    clan = Clanak(
        'naslov':naslov,
        'datum_objave':datumObjave,
        'autor':autor
        )
    clan.save()#ako podaci nisu dobri throwat ce error
    return render(request, 'allapp.html', {'data': naslov + ' ' + datumObjave + ' ' + autor})
柳杰
2023-03-14
def dodajClanak(request, naslov, datumObjave, autor):
clan = Clanak(
    'naslov':naslov,
    'datumObjave':datumObjave,
    'autor':autor
    )
clan.save()#ako podaci nisu dobri throwat ce error
context ={
    data:"naslov + ' ' + datumObjave + ' ' + autor"
}
return render(request, 'allapp.html', context)

'datum_objave'==

任文乐
2023-03-14

请尝试以下代码:

# views.py
def dodajClanak(request, naslov, datumObjave, autor):
    Clanak.objects.create(
        naslov=naslov,
        datumObjave=datumObjave,
        autor=autor
    )
    return render(request, 'allapp.html', {'data': f'{naslov} {datumObjave} {autor}'})

# urls.py
from django.contrib import admin
from django.urls import path, re_path
from app_1 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('home/', views.home),
    re_path('add/(?P<naslov>[a-zA-Z]+)/(?P<datumObjave>[-/0-9]+)/(?P<autor>[a-zA-Z]+)/', views.dodajClanak),
]
 类似资料:
  • 问题内容: 在Python脚本中,我从调用了一个函数,但出现此错误: 这里到底出了什么问题? 问题答案: 不是有效的关键字参数名称。关键字参数必须是有效的标识符。您应该查看正在使用的库的文档,该参数的 实际 调用方式是–也许?

  • 问题内容: 我有一个查询,看起来像这样: 导致以下异常: 如果删除DISTINCT关键字,查询将运行没有问题。如果删除order by子句,则查询运行不会出现问题。不幸的是,我似乎无法获得没有重复的有序结果集。 问题答案: 您正在尝试使用未计算的列对结果进行排序。如果您不在那里,那将不是问题,但是由于查询基本上只按列分组,因此如何将结果集与可以具有相同值的其他列进行排序 ?

  • 问题内容: 允许在Java 10中使用类似以下的字符串进行分配: 虽然不允许为其分配lambda表达式,例如: 为什么不能推断的λ或方法引用类型时,它可以推断出休息等,,用户类等? 问题答案: 从局部变量类型推断JEP: 实质上,推断过程只是将变量赋予其初始化程序表达式的类型。一些细微之处: 初始化程序没有目标类型(因为我们尚未推断出它)。需要这种类型的多边形表达式(例如 lambdas ,方法引

  • 问题内容: 我了解操作员在此代码中的作用: 我也明白这将采用此代码中列表的每个值: 我很好奇,如果在使用的操作循环是一样的第一个代码使用运营商。 问题答案: 它们是相同的概念,但不是相同的运算符。 在示例中,是一个处理几种不同情况的运算符。在Python文档的运营商给予的细节,我意译如下:电话,如果有一个成员函数。否则,请尝试迭代查找,如果不存在,则调用。复杂性是为旧代码和新代码提供一致的成员资格

  • 问题内容: 我在我的应用程序中使用服务创建如下 请注意行 我想在这样的地方使用变量 但是当我使用变量代替硬编码值给我时 我无法解决此错误。可能是什么原因呢? 我已使用服务器进行连续构建。我也查看了其他答案,但它们没有解决我的查询。 问题答案: 经过多次打击和试验后找到了解决方案。我所做的是: 假设条件 所有文件所在的根文件夹是 并说出该文件夹与写入函数的文件的相对路径。 + + 将形成要使用的文件

  • 本文向大家介绍JS使用正则表达式实现关键字替换加粗功能示例,包括了JS使用正则表达式实现关键字替换加粗功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS使用正则表达式实现关键字替换加粗功能的方法。分享给大家供大家参考,具体如下: 运行效果截图如下: PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用: JavaScript正则表达式在线测试工具: http://to