# Эти 2 роута всегда внизу! posts последний!
path('', include('front.urls')),
path('', include('posts.urls')),
domain.ru/my_link
books = Books.objects.raw(
"""SELECT id, name FROM
(
SELECT DISTINCT NULL AS id, LEFT(name, 1) AS name FROM Books
UNION ALL
SELECT DISTINCT id, name FROM Books AS Books1
ORDER BY name
) AS t1
ORDER BY name""")
for book in books:
print(book.id)
print(book.name)
urlpatterns = [
path('<int:id>/', views.MainPagesDetailView.as_view(), name='index'),
# или
path('<slug:slug>/', views.MainPagesDetailView.as_view(), name='index'),
]
http://my_domain/pk/
или
http://my_domain/slug/
SELECT
EMPLOYEE.ID
, EMPLOYEE.NAME
FROM
EMPLOYEE
LEFT OUTER JOIN
APPOINTMENT
ON
EMPLOYEE.ID = APPOINTMENT.EMPLOYEE_ID
GROUP BY
EMPLOYEE.ID
, EMPLOYEE.NAME
, APPOINTMENT.START_TIME
HAVING
(COUNT(APPOINTMENT.EMPLOYEE_ID) <= 3)
AND (APPOINTMENT.START_TIME = CONVERT(TIME, '09:00:00', 114))
parent = models.ForeignKey("self")
comments = [{
'id': 1,
'text': 'asdaasd',
'childrens': []
},
{ 'id': 2,
'text': 'asdaasd',
'childrens': [
{ 'id': 7,
'text': 'asdaasd',
'childrens': [
{ 'id': 12,
'text': 'asdaasd',
'childrens': [
{ 'id': 23,
'text': 'asdaasd',
'childrens': [],
},
... # и т.д.
],
},
... # и т.д.
],
},
{ 'id': 8,
'text': 'asdaasd',
'childrens': [],
},
... # и т.д.
],
},
{ 'id': 2,
'text': 'asdaasd',
'childrens': [
{ 'id': 15,
'text': 'asdaasd',
'childrens': [],
},
{ 'id': 19,
'text': 'asdaasd',
'childrens': [],
},
... # и т.д.
],
}
... # и т.д.
]
{%for comment in comments%}
{{ comment.id }}
{{ comment.text }}
{% if comment.childrens %}
# По идее здесь тоже надо будет организовать рекурсию, для отображения множественной вложенности
# гугли - django template recursive tree, примерно
# К вложенным комментариям вот так можно обращаться будет
{% for children in comment.childrens %}
{{ children.id }}
{{ children.text }}
{% if children.childrens %}
# и т.д.
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
django.contrib.auth.middleware
Он как раз ложит авторизованного юзера в request поэтому во всех views в request можно обратиться и получить авторизованного юзера вот так:def get_queryset(self)
user = self.request.user # тут юзер
user_id = self.request.user.id # так ИД юзера
path("<int:my_param>/profile/", ProfileUpdate.as_view(), name="profile-api-update" ),
# Только я бы последним параметр передавал, вот так
# path("/profile/<int:my_param>/", ProfileUpdate.as_view(), name="profile-api-update" ),
class ProfileUpdate(View):
def get(self, request, my_param):
print(my_param)
return render(request, self.template_name)
def post(self, request, my_param):
print(my_param)
return render(request, self.template_name)
def get_queryset(self):
my_param=self.kwargs['my_param']
my_param=self.kwargs.get('my_param') # лучше так
SELECT
3TABLE.ID
-- Вычисляем скидку
, CASE
WHEN
TIMES > 2
THEN
'20'
ELSE
'5'
END AS DISCOUNT
FROM
3TABLE
LEFT OUTER JOIN
(
-- Группируем по ИД
-- Суммируем sales
-- Берем более 1500
SELECT
ID
, SUM(SALES) AS SALES
FROM
(
-- Выбираем Samara и Barcelona
-- Исключаем England
-- Группируем (хотя, вот здесь наверное можно не группировать)
SELECT
1TABLE.ID
, SUM(1TABLE.SALES) AS SALES
FROM
1TABLE
INNER JOIN
2TABLE
ON
1TABLE.CITY = 2TABLE.CITY
GROUP BY
1TABLE.ID
, 1TABLE.CITY
, 2TABLE.COUNTRY
, 1TABLE.SALES
HAVING
(1TABLE.CITY IN (N'Samara', N'Barcelona'))
AND (NOT (
2TABLE.COUNTRY = N'England'
))
) AS WRAP_TABLE
GROUP BY
ID
HAVING (SUM(sales) > 1500)
) AS SUM_WRAP_TABLE
ON
SUM_WRAP_TABLE.ID = 3TABLE.ID
SELECT * # - выбрать все *(звездочка)
FROM items # - из таблицы items
WHERE # - где
prise > # - цена prise больше(пишется price правильно)
(
# Этот подзапрос вернет число которое сверяется с prise
SELECT sell_prise # - выбрать sell_prise (sell_priсe правильно)
FROM results # - из таблицы results
WHERE items_id = 1 # - где items_id (в таблице results) = 1
)
AND id = 1; # - и id (в таблице items ) = 1
@admin.register(Ordering)
class OrderingAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "system":
kwargs["queryset"] = Code.objects.filter(used=True)
return super().formfield_for_foreignkey(db_field, request, **kwargs)
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
],
<button class="myClick">Кнопка</button>
$(document).ready(function() {
$('.myClick').click(function (event) {
// сюда добавить фукнцию яндекс метрики
yandex_function('номер')
})
});
GROUP_CONCAT(A.ACTID)
SELECT
CASE WHEN P.PRODUCTID != '' THEN P.PRODUCTNAME WHEN L.LICENSEID != '' THEN L.NAME ELSE S.SERVICENAME END AS PRODUCTNAME
, CASE WHEN P.PRODUCTID != '' THEN 'product' WHEN L.LICENSEID != '' THEN 'license' ELSE 'service' END AS TYPE
, SUM(INV.QUANTITY) AS QUANTITY
, SUM(INV.QUANTITY*INV.LISTPRICE*(1-COALESCE(INV.DISCOUNT_PERCENT, 0)/100)-COALESCE(INV.DISCOUNT_AMOUNT, 0)) AS SUBTOTAL
, GROUP_CONCAT(A.ACTID)
FROM
VTIGER_SP_ACT A
INNER JOIN
VTIGER_CRMENTITY E
ON
E.CRMID = A.ACTID
INNER JOIN
VTIGER_INVENTORYPRODUCTREL INV
ON
INV.ID = A.ACTID
LEFT JOIN
VTIGER_PRODUCTS P
ON
P.PRODUCTID = INV.PRODUCTID
LEFT JOIN
VTIGER_SERVICE S
ON
S.SERVICEID = INV.PRODUCTID
LEFT JOIN
VTIGER_LICENSE L
ON
L.LICENSEID = INV.PRODUCTID
WHERE
E.DELETED = FALSE
AND ACTDATE BETWEEN '$from_date' AND '$to_date'
AND A.BRANCH_OR_AGENT IN ($branches)
GROUP BY
1
, 2
Uncaught TypeError: Cannot read property 'getContext' of null
const canvasBody = document.getElementById("canvas"),
drawArea = canvasBody.getContext("2d");
$( document ).ready(function() {
console.log( "ready DOM" );
// ваш код
});
<canvas id="canvas"></canvas>
<script src="{% static 'js/main.js' %}"></script>
</body>
</html>
$('a').click
$(document).ready(function() {
$('.element').on('click', 'a', function(e){
// .element - родительский общий элемент
// ваши действия
});
});