Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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
Django正则表达式错误_Django - Fatal编程技术网

Django正则表达式错误

Django正则表达式错误,django,Django,我认为问题在于我的URLconf无法捕获电路板的名称并将其处理到我的views.py中,因为我遇到了这个错误 NoReverseMatch at /profile/ Reverse for 'Boat' with arguments '(u"Jimmy's Board",)' and keyword arguments '{}' not found Error during template rendering In template C:\o\mysite\pet\templates\prof

我认为问题在于我的URLconf无法捕获电路板的名称并将其处理到我的views.py中,因为我遇到了这个错误

NoReverseMatch at /profile/
Reverse for 'Boat' with arguments '(u"Jimmy's Board",)' and keyword arguments '{}' not found
Error during template rendering
In template C:\o\mysite\pet\templates\profile.html, error at line 19
18     {% for b in board %}         
19     <li><a href ="{% url world:Boat b.name %}">{{ b.name }}</li>
20     {% endfor %}
如何修复URLconf以将板名处理到my views.py中

我的模特

class Board(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=100)
    def __unicode__(self):
        return self.name
我认为您需要使用一个而不是CharField作为从urlconf捕获的参数。url中不应该有空格

您应该能够使用该函数从名称字段创建slug。可能会覆盖模型上的save函数以确保它是唯一的slug,然后您可以在url中使用它。类似下面的方法就可以了(虽然不完美,但它很快就能完成任务——它只是在名称中添加随机数字,直到找到唯一的slug)-


你可以在浏览器上下载,或者应用程序应该重新传输它。尝试这个url“regex error”,但你是对的,他应该使用slugfield,因为它更好。如果我使用slugfield,我是否可以使用url>@AidanEwen中的空格,因为它看起来像软糖一样甜。这就是为什么。此外,如果您有类似“my-monkey-Sleet-my-Nembers-1251928-and-then-1239824”的内容,则比使用空格更容易阅读。@donkeyboy72 url中不需要空格。那是个坏习惯。跟斯拉格菲尔德一起去。我知道斯拉格菲尔德用-?
url(
    r'^board/(?P<name>\w+)/$',
    'pet.views.Boat',
    name ='Boat'
),
    def Boat(request ,name=""):
    if not request.user.is_authenticated():
            return HttpResponseRedirect(reverse('world:LoginRequest'))
    if name:
        board = Board.objects.get(name=name)
        picture = Picture.objects.filter(board=board)
        return render(request,'boat.html',{'picture':picture})
    return render(request,'boat.html',{'picture':picture})
def Profile(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(reverse('world:LoginRequest'))
    board = Board.objects.filter(user=request.user)
    person = Person.objects.get(user=request.user)
    return render(request,'profile.html',{'board':board ,'person':person})
class Board(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=100)
    def __unicode__(self):
        return self.name
from random import randint
from django.utils.text import slugify

class Board(models.Model):
    #...
    name models.CharField(max_length=50)
    slug = models.SlugField(max_length=50 , unique=True, editable=False) 

    def save(self, *args, **kwargs):
        slug = slugify(self.name)
        unique = False
        while not unique:
            try:
                Board.objects.get(slug=slug)
                slug += str(randint(2, 9))
            except Board.DoesNotExist:
                unique = True
        self.slug = slug
        super(Board, self).save(*args, **kwargs)