我正在尝试保存一个与另一个字段具有相同值的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。我无法做到这一点。.我尝试以下内容(以及其他无数的内容,例如将数据中心文本字段更改为...
您需要确定something
,通常是模型中唯一的内容,例如: