DoesNotExist at /rooms/create_room/ Room匹配查询不存在(显示与正在执行的函数不同


DoesNotExist at /rooms/create_room/
Room matching query does not exist

错误显示在这一行这是一个不同的视图函数(这是完美的)比我在当前模板中执行的

room = Room.objects.get(slug=slug) 

指示函数

@login_required
def room(request, slug):
room = Room.objects.get(slug=slug)
messages = Message.objects.filter(room=room) [0:25]
return render(request, 'rooms/room.html', {'room': room, 'messages': messages})

我试图执行创建房间模型实例的函数

def room_form(request, id):
if request.method == 'POST':
cf = RoomForm(request.POST or None)
if cf.is_valid():
name = request.POST.get('name')
room = Room.objects.create(room = room, user = request.user, name = name)
room.save()
return redirect(room.get_absolute_url())
else:
cf = RoomForm()
context ={
'room_form':cf,
}
return render(request, 'rooms/create_room.html', context)

我model.py

class Room(models.Model):
user = models.ForeignKey(User,models.CASCADE)
name = models.CharField(max_length=255)
slug = models.SlugField(unique=True,blank=True)
created = models.DateTimeField(auto_now_add=True, null=True)
# slug = models.SlugField(max_length= 300,null=True, blank = True, unique=True)

def __str__(self):
return self.name  + "  |  " + self.user.username
def save(self, *args, **kwargs):
self.slug = slugify(self.name + self.created.day)
super(Room,self).save(*args, **kwargs)   

在我的表格

class RoomForm(forms.ModelForm):
class Meta:
model = Room
fields = [
'name',
]
labels = {
"name": "Room Name",
}

在我的url

urlpatterns = [
path('',views.rooms, name='rooms'),
path('<slug:slug>/',views.room, name='room'),
path('create_room/',views.room_form,name="create_room"),
]

我在最后期限和这个奇怪的错误出现,而创建创建视图函数。请帮我一下。

看看你的url:

urlpatterns = [
path('',views.rooms, name='rooms'),
path('<slug:slug>/',views.room, name='room'),
path('create_room/',views.room_form,name="create_room"),
]

Django从上到下。路径rooms/create_room适合path('<slug:slug>/',views.room, name='room'),,它试图工作,但是你没有Roomcreate_room段,我想,对吧?把create_room视图放在room视图上面,效果会更好。

但是,事先,您的room_form视图无论如何都不会工作。您在调用room变量之前没有设置它。

最新更新