在models.py中
from django.contrib.auth.models import AbstractUser
from django.db import models
class User(AbstractUser):
pass
class Espresso(models.Model):
employee = models.ForeignKey(User, on_delete=models.CASCADE, related_name="user_esp_log")
time = models.DateTimeField(auto_now_add=True, blank=True)
water_temp = models.DecimalField(max_digits=3, decimal_places=1)
water_TDS = models.DecimalField(max_digits=3, decimal_places=2)
name = models.CharField(max_length=2, choices=ESPRESSO_TYPES, default= ESPRESSO_TYPES[0][1])
batch_number = models.DecimalField(max_digits=4, decimal_places=0)
dry = models.DecimalField(max_digits=4, decimal_places=2)
wet = models.IntegerField()
def __str__(self):
return f"Log added on {self.time} by {self.employee}"
在 views.py 中,'create_espresso' 路由尝试创建一个新日志,如下所示:
def create_espresso(request):
if request.method == "GET":
return render(request, "score_sheet/espresso.html", {"form": Espresso()})
else:
form = Espresso(request.POST)
user = User.objects.get(username=request.user)
if form.is_valid():
espresso = form.save(commit=False)
espresso.employee = user
espresso.save()
espressos = Espresso.objects.all()
return render(request, "score_sheet/index.html", {
"espressos": espressos,
"message": "Log added"
})
else:
return render(request, "score_sheet/espresso.html", {"form": form})
此外,这是向视图发送的表单:
{% block body %}
<form action="{% url 'create_espresso' %}" method="POST">
{% csrf_token %}
{{ form.as_table }}
<button class="btn btn-success">Log</button>
</form>
{% endblock %}
在提交表单时,Django 返回以下内容: 类型对象 'Espresso' 没有属性 'objects'
如果需要,这里是堆栈跟踪:
Internal Server Error: /create_espresso
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/Users/apostolospapas/coffee_log/coffeeLog/score_sheet/views.py", line 88, in
create_espresso
espressos = Espresso.objects.all()
AttributeError: type object 'Espresso' has no attribute 'objects'
我对可能导致这种情况的原因感到困惑。 任何帮助,将不胜感激。 谢谢。