Как написать URL динамически в HTML - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь написать URL динамически для кнопки РЕДАКТИРОВАТЬ и УДАЛИТЬ в HTML. Но здесь, когда я пытаюсь изменить все изменения, я хочу редактировать только определенные данные строки.

index.html

<tbody>
    {% for ads_obj in ads_objs %}
      <tr>
        <th scope="row">{{ ads_obj.id }}</th>
        <td>{{ ads_obj.business_id }}</td>
        <td>{{ ads_obj.description }}</td>
          <td><a href="{% url 'native:home_ads_edit' %}"><i class="fas fa-edit" style="color:green"></i></a></td>
          <td><a href="{% url 'native:home_ads_delete' %}"><i class="fas fa-trash-alt" style="color:red"></i></a></td>
      </tr>
    {% endfor %}
    </tbody>
  </table>

view.py

def home_view(request):
      if request.method == 'POST':
         form = AdsForm(request.POST)
         if form.is_valid():
             business_id = request.POST.get('business_id')
             description = request.POST.get('description')
             adsedit_obj = Ads.objects.all().filter(username=username)
             if len(adsedit_obj) > 0:
                  adsedit_obj.update(business_id=business_id,description=description)
                  return render(request, 'index.html',{})
      return render(request, 'login/login.html', {})

urls.py

urlpatterns = [
    path('signup/', views.signup_view, name='signup_view'),
    path('login/', views.signin_view, name="signin_view"),
    path('home/', views.home_view, name="home_view"),
    path('adsedit/', views.home_ads_edit, name="home_ads_edit")
]

[Просмотр шаблона] [1]



  [1]: https://i.stack.imgur.com/jLzhE.png

1 Ответ

0 голосов
/ 24 мая 2019

Вы должны передать свой obj.id в своем URL и на основании этого получить правильный объект из базы данных и отредактировать его.Примерно так будет работать:

template.html

<tbody>
    {% for ads_obj in ads_objs %}
      <tr>
        <th scope="row">{{ ads_obj.id }}</th>
        <td>{{ ads_obj.business_id }}</td>
        <td>{{ ads_obj.description }}</td>
          <td><a href="{% url 'native:home_ads_edit' asd_obj.id %}"><i class="fas fa-edit" style="color:green"></i></a></td>
          <td><a href="{% url 'native:home_ads_delete' asd_obj.id %}"><i class="fas fa-trash-alt" style="color:red"></i></a></td>
      </tr>
    {% endfor %}
    </tbody>
  </table>

urls.py

urlpatterns = [
    path('signup/', views.signup_view, name='signup_view'),
    path('login/', views.signin_view, name="signin_view"),
    path('home/', views.home_view, name="home_view"),
    path('adsedit/<int:obj_id>', views.home_ads_edit, name="home_ads_edit")
]

views.py

def home_view(request, obj_id):
    if request.method == 'POST':
        form = AdsForm(request.POST)
        if form.is_valid():
            business_id = request.POST.get('business_id')
            description = request.POST.get('description')
            adsedit_obj = Ads.objects.filter(pk=obj_id, username=username)

            if adsedit_obj:
                adsedit_obj.update(business_id=business_id,description=description)
                return render(request, 'index.html',{})
    return render(request, 'login/login.html', {})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...