Попытка сделать опцию удаления записей в блоге на django / heroku - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть проект (learning_log), в который вы можете добавлять темы, а в эти темы вы можете добавлять записи.У меня есть опция редактирования записей, но я тоже хочу добавить опцию удаления записей.Я сделал следующее, но я все еще получаю внутреннюю ошибку, когда я пытаюсь загрузить его на heroku.:

  1. Сделано URL ...

urls.py

urlpatterns = [
    #...

    #Page for deleting an entry
    path('delete_entry/',views.delete_entry,name='delete_entry'),

    ]
написал представление

views.py

def delete_entry(request, entry_id):
  """Delete an existing entry"""
  entry = get_object_or_404(Entry,id=entry_id) #getting the entry object the user wants to delete
  topic=entry.topic
  check_project_owner() #This is a custom function (I know it works) Making sure the person who wants to delete it is the owner
  entry.delete() #Delete the entry
  context = {'entry':entry} #I don't even think we need to pass this but I just want to be safe and pass something
  return render(request, 'learning_logs/delete_entry.html', context)
сделал html шаблон

delete_entry.html

{% extends "learning_logs/base.html" %}

{% block content %}

<a>Your quote has been deleted. Please click a link at the top of the 
page to return.</a>

{% endblock content %}
со ссылкой на него со своей "страницы редактирования записей"

edit_entries.html

{% extends 'learning_logs/base.html' %}
{% load bootstrap3 %}

{% block header %}
  <h2>Edit Entry in '<i><a href="{% url 'learning_logs:topic' topic.id %}">{{ topic }}</i></a>':</h2>
{% endblock header %}

{% block content %}

  <form action="{% url 'learning_logs:edit_entry' entry.id %}" method='post' class='form'>
    {% csrf_token %} <!-- Used to prevent hacking -->
    {% bootstrap_form form %}

    {% buttons %}
      <!-- creating a submit button -->
      <button name="submit" class='btn btn-primary'>Edit Entry</button> 
    {% endbuttons %}

  </form>

  <a href="{% url 'learning_logs:delete_entry' entry.id %}">Delete Entry</a>


{% endblock content %}

1 Ответ

0 голосов
/ 06 декабря 2018

в ваших шаблонах URL нет аргументов для просмотра.но ваш взгляд принимает дополнительный аргумент под названием entry_id.обновите ваш URL, чтобы решить эту проблему следующим образом:

url_patterns = [
    ...
    #Page for deleting an entry
    path('delete_entry/<int: entry_id >/',views.delete_entry,name='delete_entry'),
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...