pizzaproject/
├── db.sqlite3
├── manage.py
├── orders/
│ ├── migrations/
│ │ ├── 0001_initial.py
│ │ └── __init__.py
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── pizzaproject/
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── templates/
├── base.html
├── home.html
├── login.html
├── my_orders.html
└── signup.html
'orders' added to INSTALLED_APPStemplates/ folder added in TEMPLATES -> DIRSLOGIN_REDIRECT_URL = '/', LOGOUT_REDIRECT_URL = '/login/'import os
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
INSTALLED_APPS = [
...
'orders',
]
TEMPLATES = [
{
'DIRS': [os.path.join(BASE_DIR, 'templates')],
...
},
]
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/login/'
from django.contrib import admin
from django.urls import path
from orders import views as orders_views
from django.contrib.auth import views as auth_views
urlpatterns = [
path('admin/', admin.site.urls),
path('', orders_views.home_view, name='home'),
path('my-orders/', orders_views.my_orders_view, name='my_orders'),
path('add_to_order/', orders_views.add_to_order_view, name='add_to_order'),
path('signup/', orders_views.signup_view, name='signup'),
path('login/', auth_views.LoginView.as_view(template_name='login.html'), name='login'),
path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]
class Pizza(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=5, decimal_places=2)
class Order(models.Model):
STATUS_CHOICES = (
('Pending', 'Pending'),
('Approved', 'Approved'),
('Delivered', 'Delivered'),
)
pizza = models.ForeignKey(Pizza, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
quantity = models.IntegerField(default=1)
total_price = models.DecimalField(max_digits=7, decimal_places=2)
status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='Pending')
created_at = models.DateTimeField(auto_now_add=True)
from django.contrib import admin
from .models import Pizza, Order
class OrderAdmin(admin.ModelAdmin):
list_display = ('id', 'user', 'pizza', 'status', 'total_price', 'created_at')
list_filter = ('status', 'created_at')
search_fields = ('user__username', 'pizza__name', 'id')
admin.site.register(Pizza)
admin.site.register(Order, OrderAdmin)