Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ValidationError:在Django中不是有效的UUID_Django_Django Urls_Django 2.0 - Fatal编程技术网

ValidationError:在Django中不是有效的UUID

ValidationError:在Django中不是有效的UUID,django,django-urls,django-2.0,Django,Django Urls,Django 2.0,我正在使用Django 2.0 我有一张Note表格和StarredNotes表格 最初,没有id字段,因为它是由Django作为integer数据类型默认添加的 现在我已经将模型中id的数据类型更改为UUID model.py class Starred(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) user = models.ForeignK

我正在使用Django 2.0

我有一张
Note
表格和
StarredNotes
表格

最初,没有
id
字段,因为它是由
Django
作为
integer
数据类型默认添加的

现在我已经将模型中
id
的数据类型更改为
UUID

model.py

class Starred(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    note = models.ForeignKey(Note, on_delete=models.CASCADE)

    objects = StarredManager()

class ColorLabels(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    title = models.CharField(max_length=100, unique=True)
    value = models.CharField(max_length=100)
    default = models.BooleanField(default=False)
    updated = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title + '(' + self.value + ')'
class StarredNotes(ListView):
    template_name = 'notes/starred.html'
    model = Starred
    context_object_name = 'starred_notes'

    def get_queryset(self):
        starred_notes = Starred.objects.filter(user=self.request.user).order_by('-updated')
        return starred_notes

    @method_decorator(login_required)
    def dispatch(self, request, *args, **kwargs):
        return super(self.__class__, self).dispatch(request, *args, **kwargs)
app_name = 'notes'
urlpatterns = [
    url(r'^$', MyNotes.as_view()),
    url(r'^my/$', MyNotes.as_view(), name='my'),
    path('<pk>/', NoteUpdate.as_view(), name='update'),
    path('share-public/<pk>/', ShareNotePublic.as_view(), name='share-public'),
    path('starred-notes/', StarredNotes.as_view(), name='starred'),
    path('shared-notes/', SharedNotes.as_view(), name='shared'),
    path('delete/<pk>/', DeleteNote.as_view(), name='delete'),
    path('new/', NewNote.as_view(), name='new'),
    path('<pk>/public/', PublicNoteView.as_view(), name='public-view'),
]
视图.py

class Starred(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    note = models.ForeignKey(Note, on_delete=models.CASCADE)

    objects = StarredManager()

class ColorLabels(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    title = models.CharField(max_length=100, unique=True)
    value = models.CharField(max_length=100)
    default = models.BooleanField(default=False)
    updated = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title + '(' + self.value + ')'
class StarredNotes(ListView):
    template_name = 'notes/starred.html'
    model = Starred
    context_object_name = 'starred_notes'

    def get_queryset(self):
        starred_notes = Starred.objects.filter(user=self.request.user).order_by('-updated')
        return starred_notes

    @method_decorator(login_required)
    def dispatch(self, request, *args, **kwargs):
        return super(self.__class__, self).dispatch(request, *args, **kwargs)
app_name = 'notes'
urlpatterns = [
    url(r'^$', MyNotes.as_view()),
    url(r'^my/$', MyNotes.as_view(), name='my'),
    path('<pk>/', NoteUpdate.as_view(), name='update'),
    path('share-public/<pk>/', ShareNotePublic.as_view(), name='share-public'),
    path('starred-notes/', StarredNotes.as_view(), name='starred'),
    path('shared-notes/', SharedNotes.as_view(), name='shared'),
    path('delete/<pk>/', DeleteNote.as_view(), name='delete'),
    path('new/', NewNote.as_view(), name='new'),
    path('<pk>/public/', PublicNoteView.as_view(), name='public-view'),
]
url.py

class Starred(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    note = models.ForeignKey(Note, on_delete=models.CASCADE)

    objects = StarredManager()

class ColorLabels(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    title = models.CharField(max_length=100, unique=True)
    value = models.CharField(max_length=100)
    default = models.BooleanField(default=False)
    updated = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title + '(' + self.value + ')'
class StarredNotes(ListView):
    template_name = 'notes/starred.html'
    model = Starred
    context_object_name = 'starred_notes'

    def get_queryset(self):
        starred_notes = Starred.objects.filter(user=self.request.user).order_by('-updated')
        return starred_notes

    @method_decorator(login_required)
    def dispatch(self, request, *args, **kwargs):
        return super(self.__class__, self).dispatch(request, *args, **kwargs)
app_name = 'notes'
urlpatterns = [
    url(r'^$', MyNotes.as_view()),
    url(r'^my/$', MyNotes.as_view(), name='my'),
    path('<pk>/', NoteUpdate.as_view(), name='update'),
    path('share-public/<pk>/', ShareNotePublic.as_view(), name='share-public'),
    path('starred-notes/', StarredNotes.as_view(), name='starred'),
    path('shared-notes/', SharedNotes.as_view(), name='shared'),
    path('delete/<pk>/', DeleteNote.as_view(), name='delete'),
    path('new/', NewNote.as_view(), name='new'),
    path('<pk>/public/', PublicNoteView.as_view(), name='public-view'),
]
它给出的错误为

ValidationError at /notes/starred-notes/

["'starred-notes' is not a valid UUID."]

您的
路径('/',NoteUpdate.as_view(),name='update'),
模式太常见,它截取了带星号的notes url。您需要将其移动到列表的底部,或者最好添加uuid转换器
路径('/',NoteUpdate.as_view(),name='update')

您的
路径('/',NoteUpdate.as_view(),name='update'),
模式太常见,它拦截了带星号的notes url。您需要将其移动到列表的底部,或者最好添加uuid转换器
路径('/',NoteUpdate.as_view(),name='update')

您可以发布完整的urlpatterns列表吗?您可能在StarredNotes视图的正上方有详细视图,该视图由
/notes/starred notes/
url触发。您需要交换这些模式。还请注意,您绝对不能在超级调用中使用
self.\uuuu class\uuuu
,如果您对该视图进行子类化,您将获得无限回归。更新
urlpatterns
您可以发布完整的urlpatterns列表吗?您可能在StarredNotes视图的正上方有详细视图,该视图由
/notes/starred notes/
url触发。您需要交换这些模式。还请注意,您决不能在超级调用中使用
self.\uuuuu class\uuuu
,如果您对该视图进行子类化,您将获得无限回归。更新
urlpatterns