slugfield与其他字段具有相同的值

问题描述 投票:1回答:1

我正在尝试保存一个与另一个字段具有相同值的Slugfield。我无法使它正常工作。

我尝试以下操作(以及其他无数的操作,例如将数据中心文本字段更改为slugfield。完全没有用)

# View that saves the model to the database:

class save_device(CreateView):
    model = AddDevice
    form = add_device
    fields = ['merk', 'model', 'locatie', 'datacenter', 'device_naam', 'aantal_poorten']
    template_name = 'Item/Save_Device.html'

    def get(self, request, *args, **kwargs):
        device_form = self.form()
        context = {'device_form': device_form}
        return self.render_to_response(context)

#Model:

class AddDevice(models.Model):
    merk = models.CharField(max_length=100)
    model = models.CharField(max_length=100)
    locatie = models.CharField(max_length=100)
    datacenter = models.TextField(max_length=40, null=False)
    device_naam = models.CharField(max_length=100)
    aantal_poorten = models.CharField(max_length=500)
    slug = models.SlugField(null=False)

    def get_absolute_url(self):
        return reverse('dc_name', kwargs={'slug': self.slug})

# And the urls:

urlpatterns = [
    path('<slug:slug>/', dc_view.as_view(), name='dc_name'),
]

Slugfield保存,没有任何值。

# Full traceback:

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/save_device/

Django Version: 3.0.5
Python Version: 3.8.0
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'Dokuwiki_updatet']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback (most recent call last):
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/venv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 97, in dispatch
    return handler(request, *args, **kwargs)
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/venv/lib/python3.8/site-packages/django/views/generic/edit.py", line 172, in post
    return super().post(request, *args, **kwargs)
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/venv/lib/python3.8/site-packages/django/views/generic/edit.py", line 142, in post
    return self.form_valid(form)
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/venv/lib/python3.8/site-packages/django/views/generic/edit.py", line 126, in form_valid
    return super().form_valid(form)
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/venv/lib/python3.8/site-packages/django/views/generic/edit.py", line 57, in form_valid
    return HttpResponseRedirect(self.get_success_url())
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/venv/lib/python3.8/site-packages/django/views/generic/edit.py", line 116, in get_success_url
    url = self.object.get_absolute_url()
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/Dokuwiki_updatet/models/add_items.py", line 15, in get_absolute_url
    return reverse('dc_name', kwargs={'slug': self.slug})
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/venv/lib/python3.8/site-packages/django/urls/base.py", line 87, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File "/Users/nickdevries/PycharmProjects/Dokuwiki_updatet/venv/lib/python3.8/site-packages/django/urls/resolvers.py", line 677, in _reverse_with_prefix
    raise NoReverseMatch(msg)

Exception Type: NoReverseMatch at /save_device/
Exception Value: Reverse for 'dc_name' with keyword arguments '{'slug': ''}' not found. 1 pattern(s) tried: ['(?P<slug>[-a-zA-Z0-9_]+)/$']

我知道我做错了,并且怀疑这是因为我必须覆盖save函数(?)。我什至不知道在哪里可以找到它。

提前感谢!

我正在尝试保存一个与另一个字段具有相同值的Slugfield。我无法做到这一点。.我尝试以下内容(以及其他无数的内容,例如将数据中心文本字段更改为...

python django slug
1个回答
0
投票

您需要确定something

,通常是模型中唯一的内容,例如:
© www.soinside.com 2019 - 2024. All rights reserved.