Ошибка Django - QuerySet,Matching Query DoesNotExist
Это Текст мемо, где пользователь может отправить свою форму мемо. Мне нужно добавить (обновить) новое сообщение в эту запись через кнопку Update в DJANGO, но когда я суммирую это ошибка: Query Matching Does Not Exist.
Кстати, я использовал PK и FK в таблице db.
Как я могу его изменить?
Tks.
Сообщение об ошибке :
DoesNotExist в /addshowmemo/32/ Программное обеспечение, соответствующее запросу, не существует.
Метод запроса: POST URL запроса:
http:/127.0.0.1/addshowmemo/32/ Django Версия: 3.1.5 Исключение Тип: DoesNotExist Значение исключения: Программное обеспечение, соответствующее запросу, не
существует. Местонахождение исключения:
d:\project\python\it\venv\lib\site-packages\django\db\models\query.py, строка 429, в get Python Executable:
d:\project\python\it\venv\Scripts\python.exe Версия Python: 3.10.2
. Python Path: ['D:\project\python\it',
'c:\Users\tou52\.vscode\extensions\ms-python.python-2022.4.1\pythonFiles\lib\python\debugpy\_vendored\pydevd', 'C:\Users\tou52\AppData\Local\Programs\Python\Python310\python310.zip', 'C:\Users\tou52\AppData\Local\Programs\Python\Python310\DLLs', 'C:\Users\tou52\AppData\Local\Programs\Python\Python310\lib', 'C:\Users\tou52\AppData\Local\Programs\Python\Python310',
'd:\project\python\it\venv',
'd:\project\python\it\venv\lib\site-packages']
Модели:
class Memo(models.Model):
notes = models.TextField()
software = models.ForeignKey(Software, on_delete=models.CASCADE)
timestamp = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.notes # QuerySet
class Software(models.Model):
STATUS_CHOICES = [
(0, 'Planning'),
(1, 'Development'),
(2, 'Using'),
(3, 'Obsolete')
]
name = models.CharField(max_length=100, verbose_name="SysName")
url = models.CharField(max_length=100, verbose_name="SysAdd")
status = models.PositiveIntegerField(default=0, choices=STATUS_CHOICES, verbose_name="Status")
company = models.ForeignKey(Company, on_delete=models.CASCADE, verbose_name="Company")
team = models.ForeignKey(Team, on_delete=models.DO_NOTHING, verbose_name="Team")
def __str__(self):
return self.name # QuerySet
Шаблоны:
<form method="POST" name="myform" action="." >
{% csrf_token %}
<table class="table table-striped">
<tr>
<td align=right>Memo:</td>
<td>
<input type=text size=50 name="Cmemo" value='{{Nmemo.notes}}'>
</td>
</tr>
<tr>
<td> </td>
<td>
<input type=submit value="Confirm" class="btn btn-primary">||<a href='/showall/' class="btn btn-warning">Home</a>
</td>
<td></td>
</tr>
просмотров:
def add_showmemo(request,id=None):
logged_user = User.objects.get(username=request.user.username)
logged_user = UserProfile.objects.get(user=logged_user)
memos = Memo.objects.all()
if request.method=="POST":
Cmemo = request.POST.get('Cmemo')
software = Software.objects.get(id=request.POST.get('software_id'))
Nmemo = Memo(notes=Cmemo , software=software)
Nmemo.save()
return redirect("/showdetail/")
return render(request, "add_showmemo.html", locals())
Url
urlpatterns = [
path('addshowmemo/',views.add_showmemo),
path('addshowmemo/<int:id>/',views.add_showmemo),
path('', views.index),
]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
db база данных:
Memo db
id/notes/timestamp/software_id
1/xxx/2022-01-02/5
2/ooo/2022-01-03/3
3/yyy/2022-01-04/4
4/vvv/2022-01-05/1
5/sss/2022-01-06/2
SoftWare db
id/name/url/company_id/status/team_id
1/watch/NA/9/1/8
2/shoes/NA/10/2/8
3/pen/NA/10/7/2/8
4/apple/NA/7/2/9
5/phone/NA/4/0/6