我的问题是我有一个模型可以使用两个外键之一来说明它是哪种模型。我希望它至少需要一个,但不是两个。我可以让这仍然是一种模型还是应该将其分为两种类型。这是代码:
class Inspection(models.Model):
InspectionID = models.AutoField(primary_key=True, unique=True)
GroupID = models.ForeignKey('PartGroup', on_delete=models.CASCADE, null=True, unique=True)
SiteID = models.ForeignKey('Site', on_delete=models.CASCADE, null=True, unique=True)
@classmethod
def create(cls, groupid, siteid):
inspection = cls(GroupID = groupid, SiteID = siteid)
return inspection
def __str__(self):
return str(self.InspectionID)
class InspectionReport(models.Model):
ReportID = models.AutoField(primary_key=True, unique=True)
InspectionID = models.ForeignKey('Inspection', on_delete=models.CASCADE, null=True)
Date = models.DateField(auto_now=False, auto_now_add=False, null=True)
Comment = models.CharField(max_length=255, blank=True)
Signature = models.CharField(max_length=255, blank=True)
Run Code Online (Sandbox Code Playgroud)
问题是Inspection模型。这应该链接到一个组或一个站点,但不能同时链接到这两个站点。目前使用此设置,它需要两者。
我宁愿不必将其拆分为两个几乎相同的模型GroupInspection和SiteInspection,因此任何将其保留为一个模型的解决方案都是理想的。
我有一个问题,我有一个 MariaDB 事件与我的 Django 模型相结合。对于上下文,这是我的模型代码:
class PartGroup(models.Model):
GroupID = models.AutoField(primary_key=True, unique=True)
Label = models.CharField(max_length=40, blank=True)
SiteID = models.ForeignKey('Site', on_delete=models.CASCADE, null=True)
InspectionPeriod = models.IntegerField(blank=False, null=True)
LastInspected = models.DateField(blank=True, null=True)
InspectionDue = models.CharField(max_length=255, blank=True)
ConnectedTo = models.ManyToManyField('self', blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
我想在这里强调的领域是InspectionPeriod,LastInspected和InspectionDue。我有另一个模型,它添加了与GroupID. 这包含检查日期:
class GroupInspection(models.Model):
InspectionID = models.AutoField(primary_key=True, unique=True)
GroupID = models.ForeignKey('PartGroup', on_delete=models.CASCADE, null=True, unique=True)
class GroupReport(models.Model):
ReportID = models.AutoField(primary_key=True, unique=True)
InspectionID = models.ForeignKey('GroupInspection', on_delete=models.CASCADE, null=True)
Date = models.DateField(auto_now=False, auto_now_add=False, null=True)
Comment = models.CharField(max_length=255, blank=True)
Signature …Run Code Online (Sandbox Code Playgroud) 我从清单中得到了一组值:
{% for groups in groupList %}
<tr>
<td id="checkboxes">
<input type="checkbox" name="check" id="check_{{groups.GroupID}}">
</td>
<tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
请注意,这只是一个更大表格的一个片段。但这是相关数据。
我需要获取表中所有已检查的项目并将其提取groups.GroupID到一个数组中,并将其传递到某个地方(大概是一个视图),我可以在其中使用数据来编辑模型实例。
我知道如何将数据获取到数组中,但我不确定如何传递数据。可能是一个表单,但我不确定如何将其实现附加到视图并传递数组。
我最近遇到了一个数据库问题,所以我决定用核武器攻击它,因为我没有重要的数据。我删除了应用程序目录中的迁移文件夹并删除了数据库。但是现在,当我重新创建所有内容时,manage.py migrate出现以下错误:
File "../manage.py", line 21, in <module>
main()
File "../manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 364, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/django/core/management/commands/migrate.py", line 234, in handle
fake_initial=fake_initial,
File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/executor.py", line 91, in migrate
self.recorder.ensure_schema()
File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/recorder.py", line 69, in ensure_schema …Run Code Online (Sandbox Code Playgroud) 我正在按照文档https://kivy.org/doc/stable/installation/installation-windows.html上的说明进行操作
并且已经到了舞台
Install kivy:
python -m pip install kivy==1.11.1
Run Code Online (Sandbox Code Playgroud)
在此之前的一切都运行良好。我已经使用 --verison 检查了我的 python 版本和 pip 版本。我有 Python 3.8.1 和 pip 20.0.2(python 3.8)。
首先,那一步不起作用,我得到了 ERROR: Failed building wheel for kivy
于是我环顾四周,发现可以直接下载一个轮子。所以我下载了https://kivy.org/downloads/appveyor/kivy/Kivy-2.0.0rc1.20200130.318720360-cp38-cp38-win_amd64.whl
我认为这将是正确的版本,因为我有 python 3.8 和 64 位处理器。
但是,当我尝试时python -m pip install Kivy-2.0.0rc1.20200130.318720360-cp38-cp38-win_amd64.whl,出现以下错误:
ERROR: Could not find a version that satisfies the requirement Kivy-2.0.0rc1-cp38-cp38-win_amd64 (from versions: none)
ERROR: No matching distribution found for Kivy-2.0.0rc1-cp38-cp38-win_amd64
Run Code Online (Sandbox Code Playgroud)
编辑后面的完整错误ERROR: Failed building wheel for kivy:
C:\Users\User>python -m pip install …Run Code Online (Sandbox Code Playgroud) django ×4
post ×2
arrays ×1
django-forms ×1
forms ×1
kivy ×1
mariadb ×1
mysql ×1
pip ×1
python ×1
python-3.x ×1
windows-10 ×1