如何在 Django / 模板中增加下一条记录

deblearns1

index.html- 我可以使用下面的代码在 Django 中读取我的表/模型的第一项。但是,在用户单击next按钮后 - 我希望它检索我的表/模型的下一项。(如何/在哪里建立这个计数器?)

这是views.py

def index(request):
  flash_dict = {'flashcards': Card.objects.get(pk=1)}
  return render(request, 'flash/index.html', context=flash_dict)

这是 index.html

      <div class = "jumbotron">
        {% if flashcards %}
          <p class = 'question'>{{ flashcards }}</p>
          <p class = 'answer'>{{ flashcards.flash_answer }}</p>
          <button type="button" class="btn btn-primary" onclick = "flip()">Flip</button>
          <button type="button" class="btn btn-primary">Next</button>
          {% else %}
            <p>NO ACCESS RECORDS FOUND!</p>
          {% endif %}
      </div>

这是models.py

from django.db import models

# Create your models here.

class Card(models.Model):
  flash_question = models.TextField()
  flash_answer = models.TextField()
  objects = models.Manager()

  def __str__(self):
    return self.flash_question

这是 urls.py (在基本项目文件夹下)

from django.contrib import admin
from django.urls import path, include
from flash import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',views.index,name='index'),
]

这是 urls.py(在 app 文件夹下)

from django.conf.urls import url
from flash import views

urlpatterns = [
  url(r'^$', views.index, name='index')
]
山姆

使这项工作在语义上“正确”的方法是显着重新连接您的代码:

首先,您需要修改基本文件夹中的 urls.py,以便抽认卡 URL 采用抽认卡 ID。这将允许您访问 flashcard/1/、flashcard/2/ 等并查看相应 flashcard 的数据。

网址.py

from django.contrib import admin
from django.urls import path, include
from flash import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('flashcard/<int:card>/',views.index,name='flashcard'), # Here we are adding a variable to the URL pattern, which will be passed to the view
]

接下来,您需要修改您的视图,以便它从 URL 中获取抽认卡 ID 并呈现有问题的抽认卡:

视图.py

def flashcard(request, card=1): # Your view will now look for the 'card' variable in your URL pattern.
  flash_dict = {'flashcards': Card.objects.get(pk=card)} # Your 'flashcards' variable now holds the card that corresponds to the ID in the URL
  return render(request, 'flash/index.html', context=flash_dict)

然后,我们将在您的 Card 模型中编写一个方法,该方法将在调用 self.get_next 时提取下一张卡片。现在,如果你有一个 Card 对象,你可以通过调用 card.get_next() 找到下一张卡片:

模型.py

from django.db import models

# Create your models here.

class Card(models.Model):
  flash_question = models.TextField()
  flash_answer = models.TextField()
  objects = models.Manager()

  def __str__(self):
    return self.flash_question

  def get_next(self):
    next = Card.objects.filter(id__gt=self.id).order_by('id').first()
    if next:
        return next
    # If the current card is the last one, return the first card in the deck
    else:
        return Card.objects.all().order_by('id').first()

最后,我们将用一个链接到新“抽认卡”视图的 a href 替换模板中的按钮,并将序列中下一张卡片的 ID 传递给它:

模板.html

<div class = "jumbotron">
        {% if flashcards %}
          <p class = 'question'>{{ flashcards }}</p>
          <p class = 'answer'>{{ flashcards.flash_answer }}</p>
          <!-- Here we link to the 'flashcard' view, and pass it the ID of the next card in the sequence -->
          <a href="{% url 'flashcard' flashcards.get_next.id %}">Next flashcard</a>
          {% else %}
            <p>NO ACCESS RECORDS FOUND!</p>
          {% endif %}
      </div>

现在,尝试访问 /flashcard/1 以查看所有内容如何协同工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在模板 Django 中增加变量

来自分类Dev

Django:如何仅更新数据库中的一条记录?

来自分类Dev

如何在下一条记录等于上一条记录时对所有记录进行分组

来自分类Dev

如何在Django 2模板中增加价值

来自分类Dev

如何从vb .net中的ms访问表中获取下一条记录

来自分类Dev

访问Django模板中的第一条消息

来自分类Dev

如何在Django中增加IntegerField?

来自分类Dev

如何在Django中增加IntegerField变量?

来自分类Dev

如何在Django模板中获取类

来自分类Dev

django如何在模板中包含javascript

来自分类Dev

如何在Django模板中编写查询

来自分类Dev

如何在Django模板中获取课程

来自分类Dev

如何在 Django 模板中显示 ImageField

来自分类Dev

如何在 Django 模板中优化循环?

来自分类Dev

如何在 Django 中获取翻译记录

来自分类Dev

如何从相同的多条记录中获取一条记录?

来自分类Dev

如何在SQL中向后运行UPDATE命令(从最后一条记录到第一条)?

来自分类Dev

如何在T-SQL(SSMS 2017)中基于下一条记录的[EffectiveDate] -1计算到期日期?

来自分类Dev

如何在Express应用中获取下一条路线的路径

来自分类Dev

如何在Mac上的Visual Studio中设置下一条语句

来自分类Dev

如何创建包含有关下一条或上一条记录的信息的视图?

来自分类Dev

如何在 Django 模板中使用“if”增加变量?

来自分类Dev

如何在django / mezzanine模板中显示上载的django ImageField?

来自分类Dev

如何从mongodb中的arraylist中获取一条记录

来自分类Dev

如何在AngularJS中获取数组中的最后一条记录

来自分类Dev

如何在odoo中仅将一条记录添加到表单中

来自分类Dev

如何在 Laravel 5.6 中显示多对多关系中的最后一条记录

来自分类Dev

如何在转发器输出中每5条记录后插入一条空记录?

来自分类Dev

如何查找组中的最后一条记录

Related 相关文章

  1. 1

    如何在模板 Django 中增加变量

  2. 2

    Django:如何仅更新数据库中的一条记录?

  3. 3

    如何在下一条记录等于上一条记录时对所有记录进行分组

  4. 4

    如何在Django 2模板中增加价值

  5. 5

    如何从vb .net中的ms访问表中获取下一条记录

  6. 6

    访问Django模板中的第一条消息

  7. 7

    如何在Django中增加IntegerField?

  8. 8

    如何在Django中增加IntegerField变量?

  9. 9

    如何在Django模板中获取类

  10. 10

    django如何在模板中包含javascript

  11. 11

    如何在Django模板中编写查询

  12. 12

    如何在Django模板中获取课程

  13. 13

    如何在 Django 模板中显示 ImageField

  14. 14

    如何在 Django 模板中优化循环?

  15. 15

    如何在 Django 中获取翻译记录

  16. 16

    如何从相同的多条记录中获取一条记录?

  17. 17

    如何在SQL中向后运行UPDATE命令(从最后一条记录到第一条)?

  18. 18

    如何在T-SQL(SSMS 2017)中基于下一条记录的[EffectiveDate] -1计算到期日期?

  19. 19

    如何在Express应用中获取下一条路线的路径

  20. 20

    如何在Mac上的Visual Studio中设置下一条语句

  21. 21

    如何创建包含有关下一条或上一条记录的信息的视图?

  22. 22

    如何在 Django 模板中使用“if”增加变量?

  23. 23

    如何在django / mezzanine模板中显示上载的django ImageField?

  24. 24

    如何从mongodb中的arraylist中获取一条记录

  25. 25

    如何在AngularJS中获取数组中的最后一条记录

  26. 26

    如何在odoo中仅将一条记录添加到表单中

  27. 27

    如何在 Laravel 5.6 中显示多对多关系中的最后一条记录

  28. 28

    如何在转发器输出中每5条记录后插入一条空记录?

  29. 29

    如何查找组中的最后一条记录

热门标签

归档