INSTALLED_APPS = [
.....
'django.contrib.sites',
]
MIDDLEWARE = [
'django.middleware.common.CommonMiddleware',
'app_name.middleware.multisite.DomainRouterMiddleware',
..............
]
class Site(models.Model):
"""
Модель в которой будут храниться подключаемые сайты
"""
domain = models.CharField("Домен", max_length=120)
name = models.CharField("Имя", max_length=320)
appname = models.CharField("Имя приложения", validators=[_appname_validator], max_length=120)
objects = SiteManager()
def __str__(self):
return self.name
class Meta:
db_table = "site"
verbose_name = "Сайт"
verbose_name_plural = "Сайты"
ordering = ('domain',)
class DomainRouterMiddleware(object):
"""
Middleware в которой происходит редирект на нужный urlconf.
Пример: Есть объект < 'Site' domain="example.com", name='Example', appname='example'>
При запросе на сайт example.com пользователь будет перенаправлен в приложение example в модуль example.urls
"""
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
host = request.get_host() # Получаем имя доменна в запросе
site = Site.objects.get(domain=host) # Пытаемся найти данный домен в django sites
request.urlconf = '%s.urls' % site.appname # Перенаправляем пользователя в нужный url конфиг
return self.get_response(request)
Site.objects.create(domain="example.com", name='Example', appname="example")
import datetime
def fishspeed_bonus(request):
now = datetime.datetime.now()
bonus_time = request.session.get("bonus_time")
if bonus_time:
delta = now - datetime.datetime.fromisoformat(bonus_time)
if delta.days > 0:
bonus = True
else:
bonus = False
else:
request.session['bonus_time'] = datetime.datetime.now().isoformat()
bonus = True
return render(request, 'fishspeed/bonus.html', {"bonus": bonus})
{% if bonus %}
<button type="submit" class="btn btn-blue btn-righ" name="button" value="button">GET BONUS</button>
{% else %}
<b class="my">Next bonus after 24 hours</b>
{% endif %}
</center>
class Addbookmark(View):
def post(self, request, pk):
child = Child.objects.get(id=pk)
new_bookmark = BookmarksModel.objects.create(child=child)
session_bookmarks = request.session.get("bookmarks_id", [])
session_bookmarks.append(new_bookmark.id)
request.session['bookmarks_id'] = session_bookmarks
return redirect('/bookmarks/all-bookmarks/')
class BookmarksListView(ListView):
model = BookmarksModel
context_object_name = 'bookmarks'
template_name = 'bookmarks/bookmarks.html'
def get_queryset(self):
return self.model.objects.filter(id__in=self.request.session.get("bookmarks_id", []))
<head>
{% block head %}{% endblock %}
</head>
from django.contrib.auth.models import User
Это ОЧЕНЬ плохая практика. Не делайте так. Модель User это не абстрактная модель.class CustomUser(AbstractBaseUser, PermissionsMixin):
# some fields
# some methods
class Client(models.Model):
user = models.ForeignKey("CustomUser", on_delete=models.CASCADE)
def save_duplicate(self, volumion):
volumion.id = None
volumion.save()
Files.objects.create(**self.cleaned_data, volumio=volumion)
from copy import deepcopy
if form.is_valid():
for vol in Volumion.objects.filter(is_online=True):
new = form.save(commit=False)
new.volumio_id = vol.id
new.set_name()
new.save()
new.save_duplicate(deepcopy(vol))
form = IpForm(request.POST)
if form.is_valid():
data = form.cleaned_data
data['name'] = 'chdir'
IpForm(data)
class Foo(models.Model):
.................
class Meta:
managed = false
def save_data():
file = open("scratch.json", 'r') # Предположим это json
data = json.loads(file.read()) # Загружаем json
file.close()
for row in data:
Scratch.objects.update_or_create(title=row['title'], image=row['image'], price=row['price']) # Название модели и полей надеюсь вы сами подставите
class Order(models.Model):
count = models.PositiveIntegerField(validators=[MinValueValidator(1)], default=1)
game = Game.objects.get(id=gameId)
team = game.team.filter(position__name=Position_name)
if team.exists():
team[0].city = City.objects.get(name=City_name) # Тут стоит сделать более строгую проверку чтобы не было дублей
team[0].save()
class Foo(models.Model):
nested = models.ForeignKey('self', on_delete=CASCADE)