我正在尝试在 Heroku 上部署我的 Python 应用程序,但没有成功。PyICU包裹似乎出现了问题,我不确定如何更正。我已经确认这是我部署的唯一问题;当我PyICU从我的需求文件中删除时,一切正常。但当然,没有它我的网站就无法运行。
谁能指导我如何在 Heroku 上正确安装这个软件包?我尝试了各种方法,包括下载 .whl 文件,然后将其添加到我的需求文件中,但随后出现另一个错误:
ERROR: PyICU-2.7.3-cp38-cp38m-win_amd64.whl is not a supported wheel on this platform. 我不明白为什么 - 这是正确的 Python 和 os 版本。
以下是构建日志的相关摘录:
-----> Building on the Heroku-20 stack
-----> Using buildpack: heroku/python
-----> Python app detected
-----> Using Python version specified in runtime.txt
-----> Installing python-3.8.10
-----> Installing pip 20.2.4, setuptools 47.1.1 and wheel 0.36.2
-----> Installing SQLite3
-----> Installing requirements with pip
...
Building wheel for PyICU (setup.py): started …Run Code Online (Sandbox Code Playgroud) 我是 Django Rest 框架的新手。我试图让我ListAPI展示我的Quiz(和相关)模型的各个领域。attempt_number除了我的领域外,它运行良好。我得到了正确的查询集,但我不确定如何仅获取每个查询的相关值。用户可以根据需要多次参加每个测验,并且我想显示每次尝试的查询集,因为分数等会有所不同。
我的模型设置如下:
class Quiz(models.Model):
title = models.CharField(max_length=15)
slug = models.SlugField(blank=True)
questions_count = models.IntegerField(default=0)
class Question(models.Model):
quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE)
label = models.CharField(max_length=1000)
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
answer = models.CharField(max_length=100)
is_correct = models.BooleanField('Correct answer', default=False)
class QuizTaker(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE)
correct_answers = models.IntegerField(default=0)
completed = models.BooleanField(default=False)
attempt_number = models.PositiveIntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)
我的序列化器看起来ListAPI如下:
class MyQuizListSerializer(serializers.ModelSerializer):
attempt = serializers.SerializerMethodField()
# etc..
class Meta:
model = Quiz
fields …Run Code Online (Sandbox Code Playgroud) python django serialization django-models django-rest-framework