Ключевое слово не может быть выражением - Просмотр - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь создать базу данных с 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-main-thread: трассировка (последний вызов последний): файл "C: \ Users \% имя пользователя% \ AppData \ Local \ Программы \ питон \ python37-32 \ Lib \ threading.py", строка 917, в _bootstrap_inner Файл self.run () "c: \ users \% username% \ appdata \ local \ Programs \ python \ python37-32 \ Lib \ threading.py", линия 865, в прогоне self._target (* self._args, ** self._kwargs) Файл "C: \ Final \ vj_2 \ venv \ lib \ site-packages \ django \ utils \ autoreload.py", линия 54, в обертке fn (* args, ** kwargs) Файл "C: \ Final \ vj_2 \ venv \ lib \ site-packages \ django \ core \ management \ commands \ runserver.py", строка 117, в inner_run self.check (display_num_errors = True) Файл "C: \ Final \ vj_2 \ venv \ lib \ site-packages \ django \ core \ management \ base.py", строка 390, в чеке include_deployment_checks = include_deployment_checks, файл "C: \ Final \ vj_2 \ venv \ lib \ site-packages \ django \ core \ management \ base.py", строка 377, в _run_checks return check.run_checks (** kwargs) Файл "C: \ Final \ vj_2 \ venv \ lib \ site-packages \ django \ core \ check \ registry.py", строка 72, в run_checks new_errors = check (app_configs = app_configs) Файл "C: \ Final \ vj_2 \ venv \ lib \ site-packages \ django \ core \ check \ urls.py", строка 13, в check_url_config return check_resolver (resolver) Файл "C: \ Final \ vj_2 \ venv \ lib \ site-packages \ django \ core \ check \ urls.py", строка 23, в check_resolver return check_method () Файл "C: \ Final \ vj_2 \ venv \ lib \ site-packages \ django \ urls \ resolvers.py", строка 398, в чеке для шаблона в self.url_patterns: файл "C: \ Final \ vj_2 \ venv \ lib \ site-packages \ django \ utils \ functions.py", строка 80, в получить res = instance. dict [self.name] = self.func (instance) Файл "C: \ Final \ vj_2 \ venv \ lib \ site-packages \ django \ urls \ resolvers.py", строка 579, в url_patterns файл templates = getattr (self.urlconf_module, "urlpatterns", self.urlconf_module) "C: \ Final \ vj_2 \ venv \ Lib \ сайт-пакеты \ Джанго \ Utils \ functional.py", строка 80, в получить res = instance. dict [self.name] = self.func (instance) Файл "C: \ Final \ vj_2 \ venv \ lib \ site-packages \ django \ urls \ resolvers.py", строка 572, в urlconf_module return import_module (self.urlconf_name) Файл "C: \ Final \ vj_2 \ venv \ lib \ importlib__init __. py", строка 127, в import_module вернуть _bootstrap._gcd_import (имя [уровень:], пакет, уровень) Файл "", строка 1006, в файле _gcd_import "", строка 983, в _find_and_load File "", строка 967, в _find_and_load_unlocked Файл "", строка 677, в _load_unlocked
Файл "", строка 728, в Файл exec_module "", строка 219, в _call_with_frames_removed Файл "C: \ Final \ vj_2 \ vj_2 \ vj_2 \ urls.py", строка 18, в из app_1 импортировать представления Файл "C: \ Final \ vj_2 \ vj_2 \ app_1 \ views.py", строка 12 'Naslov' = naslov, ^ SyntaxError: ключевое слово не может быть выражением

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),
]

Ответы [ 3 ]

1 голос
/ 21 мая 2019
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' ==> datumObjave

1 голос
/ 21 мая 2019

Попробуйте следующий код:

# 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),
]
0 голосов
/ 21 мая 2019
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})
...