Advertisement
1cutcut1

DNICK

Mar 13th, 2025
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.69 KB | None | 0 0
  1. AVTOMOBILI
  2. Modeli)
  3. from django.contrib.auth.models import User
  4. from django.db import models
  5.  
  6. # Create your models here.
  7.  
  8. class Avtomobil(models.Model):
  9.     tip=models.CharField(max_length=100)
  10.     maxBrzina=models.IntegerField()
  11.     boja=models.CharField(max_length=100)
  12.  
  13. class Rabotilnica(models.Model):
  14.     ime=models.CharField(max_length=100)
  15.     godinaOsnovanje=models.CharField(max_length=100)
  16.     infoTip=models.BooleanField()
  17.  
  18. class Proizvoditel(models.Model):
  19.     ime=models.CharField(max_length=100)
  20.     link=models.CharField(max_length=100)
  21.     zemjaPoreklo=models.CharField(max_length=100)
  22.     imeSopstvenik=models.CharField(max_length=100)
  23.  
  24. class Popravka(models.Model):
  25.     kod=models.CharField(max_length=100)
  26.     datum=models.CharField(max_length=100)
  27.     opis=models.CharField(max_length=100)
  28.     korisnik=models.ForeignKey(User,on_delete=models.CASCADE)
  29.     fotografija=models.ImageField('popravki/',null=True,blank=True)
  30.     avtomobilinfo = models.ForeignKey(Avtomobil, on_delete=models.CASCADE)
  31.     rabotilnica=models.ForeignKey(Rabotilnica, on_delete=models.CASCADE)
  32.  
  33. class RabotilnicaProizvoditel(models.Model):
  34.     rabotilnica = models.ForeignKey(Rabotilnica, on_delete=models.CASCADE)
  35.     proizvoditel = models.ForeignKey(Proizvoditel, on_delete=models.CASCADE)
  36.  
  37.  
  38.  
  39. -------------------------------------------------
  40. Admin)
  41. from django.contrib import admin
  42. from Avtomobil.models import Avtomobil, Popravka, Rabotilnica, Proizvoditel,RabotilnicaProizvoditel
  43.  
  44.  
  45. # Регистрација на моделот Автомобил
  46. class AvtomobilAdmin(admin.ModelAdmin):
  47.     list_display = ('tip', 'boja')
  48.  
  49. admin.site.register(Avtomobil, AvtomobilAdmin)
  50.  
  51. # Автоматско доделување на најавениот корисник при креирање на поправка
  52. class PopravkaAdmin(admin.ModelAdmin):
  53.     list_display = ('kod', 'datum', 'opis', 'korisnik', 'avtomobilinfo', 'rabotilnica')
  54.  
  55.     def save_model(self, request, obj, form, change):
  56.         if not obj.korisnik:  # Доделување на тековниот корисник само при креирање
  57.             obj.korisnik = request.user
  58.         super().save_model(request, obj, form, change)
  59.  
  60. admin.site.register(Popravka, PopravkaAdmin)
  61.  
  62.  
  63.  
  64. # Само супер корисник може да додава производители на автомобили
  65. class ProizvoditelAdmin(admin.ModelAdmin):
  66.     def has_add_permission(self, request):
  67.         return request.user.is_superuser
  68.  
  69.     def save_model(self, request, obj, form, change):
  70.         if not request.user.is_superuser:
  71.             return
  72.         super().save_model(request, obj, form, change)
  73. admin.site.register(Proizvoditel, ProizvoditelAdmin)
  74.  
  75. # со забелешка дека производителите-соработници на
  76. # една работилница се додаваат во делот за работилницата
  77.  
  78. class RabotilnicaProizvoditelAdmin(admin.StackedInline):
  79.     model = RabotilnicaProizvoditel
  80.     extra = 1
  81.  
  82. # Забрана за промена и бришење на работилници по зачувување
  83. class RabotilnicaAdmin(admin.ModelAdmin):
  84.     inlines = [RabotilnicaProizvoditelAdmin]
  85.     list_display = ('ime', 'godinaOsnovanje', 'infoTip')
  86.  
  87.     def has_change_permission(self, request, obj=None):
  88.         if obj:
  89.             return False  # Забрана за промена на зачувани работилници
  90.         return True
  91.  
  92.     def has_delete_permission(self, request, obj=None):
  93.         return False  # Забрана за бришење на работилници
  94.  
  95. admin.site.register(Rabotilnica, RabotilnicaAdmin)
  96.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement