Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
502 Bad Gateway with nginx and gunicorn 111: Connection refused
before getting into the problem i want to specify that i'm stuck with this 502 page two days, need help please i had my app running perfectly on a digital ocean droplet sisn i dicided to add another app to it and now no one is running (502 error ) i deleted the second app but the first didn't restart commands i run and the result sudo systemctl status nginx -> Active: active (running) ● gunicorn.service - gunicorn daemon Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2022-01-12 09:57:21 UTC; 35min ago TriggeredBy: ● gunicorn.socket Main PID: 1031544 (gunicorn) Tasks: 4 (limit: 1136) Memory: 168.5M CGroup: /system.slice/gunicorn.service ├─1031544 /home/taki/kahraba/venv/bin/python3 /home/taki/kahraba/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock config.wsgi:application ├─1031556 /home/taki/kahraba/venv/bin/python3 /home/taki/kahraba/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock config.wsgi:application ├─1031557 /home/taki/kahraba/venv/bin/python3 /home/taki/kahraba/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock config.wsgi:application └─1031558 /home/taki/kahraba/venv/bin/python3 /home/taki/kahraba/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock config.wsgi:application sudo nginx -t -> syntax is ok the only error i get is when running sudo tail -100 /var/log/nginx/error.log connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: xx-xx-xx-xx server : xx-xx-xx-xx , upstream: "http://unix:/run/gunicorn.sock:/" when i allow port:8000 with sudo ufw allow 8000 and i … -
How to write Django views (JSON apis) with statically typed arguments and responses?
In Java Spring, I can write down (simplified): List<Apple> fetchApples(Orange request) { ... } class Orange { int a; double b; String c; ... } class Apple { int d; double e; String f; ... } By doing this, I can be very sure that users of the API will only pass in some data like {a: 42, b: 1.2, c: "hello"}, instead of {a: "wtf", z: [1,2,3]}. However, in Django, I do not find any method to hint this. I have to use a = int(request['a']) to manually convert that parameter into type int and so on. This is even more troublesome when dealing with more complicated structs. Thus, how can I do something similar to Java Spring? I know Django/Python is not statically typed, but a type hint is better than nothing. Why I need this: Firstly, more typing is better for the code (more errors can be found at lint time). Secondly, and most importantly, I want to run code generator but that definitely requires some static typing hinting. For example, generate Dart/Flutter client of the Django server. -
My index page used to extend a base_generic templage not showing while the extended template works perfectly
i extends a base_generic page through an index page in django,but the index page insn't showing any content,while the base_generic page works perfectly.I have tried removing all parents template from the index page,still not working. Pls help -
How do I set a wildcard for CSRF_TRUSTED_ORIGINS in Django?
After updating from Django 2 to Django 4.0.1 I am getting CSRF errors on all POST requests. The logs show: "WARNING:django.security.csrf:Forbidden (Origin checking failed - https://127.0.0.1 does not match any trusted origins.): /activate/" I can't figure out how to set a wildcard for CSRF_TRUSTED_ORIGINS? I have a server shipped to customers who host it on their own domain so there is no way for me to no the origin before hand. I have tried the following with no luck: CSRF_TRUSTED_ORIGINS = ["https://\*", "http://\*"] and CSRF_TRUSTED_ORIGINS = ["*"] Explicitly setting "https://127.0.0.1" in the CSRF_TRUSTED_ORIGINS works but won't work in my customer's production deployment which will get another hostname. -
Django Model Calculated field as Database level?
I have the simplified model below : class Product(models.Model): name = models.CharField(max_length=50) price = models.FloatField() class Invoice(models.Model): product = models.ForeignKey(Product,on_delete=models.PROTECT) quantity = models.FloatField() @property def total(self): return self.quantity * self.product.price I would like to be able to process data analysis on my Invoices data. If i load my queryset to a list, the total property is missing : Invoice.object.all().values_list() Is there a way with django to calculate the property field as a database level ? So it would be easy to analyse from queryset (ideally i would like to load in dataframe) Thanks for the tips ! -
Problems with PIL Image on django post_save
I'm trying to create a thumbnail from the image uploaded. I don't want to create a field in the Model. I just want to create some thumbnails in the same folder where the original picture is uploaded. @receiver(post_save, sender=Categoria) def wallpapers_thumbnail(sender, instance, **kwargs): file = instance.wallpaper ext = os.path.splitext(file.path)[-1] thumbnail = ( f"{settings.MEDIA_ROOT}/wallpapers/categorie/{instance.id}/thumbnail-600{ext}" ) try: im = Image.open(file.path) print("open file") im.thumbnail((600, 600)) print("create thumbnail") im.save(thumbnail) print("save thumbnail") except IOError: print(IOError) Unluckly it throws an error: open file create thumbnail <class 'OSError'> What is wrong? -
How to separate lines in django text_Field model?
I have written the following code in my models.py file: from django.db import models from django.utils import timezone from django.contrib.auth.models import User from django.urls import reverse # Create your models here. class Post(models.Model): title = models.CharField(max_length=200) content = models.TextField() date_posted = models.DateTimeField(default=timezone.now) author = models.ForeignKey(User, on_delete=models.CASCADE) genere = models.CharField(max_length=50, default='') def __str__(self): return f'{self.title} by {self.author}' In my views.py file I have written: from django.shortcuts import render from .models import Post from django.views.generic import ListView class PostListView(ListView): model = Post template_name = "blog/index.html" context_object_name = "posts" ordering = ["-date_posted"] In my index.html I have written: {% extends "blog/base.html" %} {% load static %} {% block content %} {% for post in posts %} <article class="col-12 col-md-6 tm-post"> <hr class="tm-hr-primary"> <a href="{% url 'blog-detail' post.id %}" class="effect-lily tm-post-link tm-pt-60"> <div class="tm-post-link-inner"> <img src="{% static 'img/img-01.jpg' %}" alt="Image" class="img-fluid"> </div> <span class="position-absolute tm-new-badge">New</span> <h2 class="tm-pt-30 tm-color-primary tm-post-title">{{ post.title }}</h2> </a> <p class="tm-pt-30"> {{ post.content|safe|truncatewords:"30"|linebreaks }} </p> <div class="d-flex justify-content-between tm-pt-45"> <span class="tm-color-primary">{{ post.genere }}</span> <span class="tm-color-primary">{{ post.date_posted|date:'N j,Y' }}</span> </div> <hr> <div class="d-flex justify-content-between"> <span>36 comments</span> <span>by {{ post.author }}</span> </div> </article> {% endfor %} {% endblock %} Suppose if I add the following things in my post.content: laborum deserunt do excepteur … -
ModuleNotFoundError: "projectname" DJANGO + UWSGI + NGINX (UBUNTU 20.04)
I want to deploy my django project but uwsgi gives me an error: File "/root/eva/lawyer/lawyer/wsgi.py", line 16, in <module> application = get_wsgi_application() File "/root/eva/venv/lib/python3.8/site-packages/django/core/wsgi.py", line 1> django.setup(set_prefix=False) File "/root/eva/venv/lib/python3.8/site-packages/django/__init__.py", line 19> configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) File "/root/eva/venv/lib/python3.8/site-packages/django/conf/__init__.py", li> self._setup(name) File "/root/eva/venv/lib/python3.8/site-packages/django/conf/__init__.py", li> self._wrapped = Settings(settings_module) File "/root/eva/venv/lib/python3.8/site-packages/django/conf/__init__.py", li> mod = importlib.import_module(self.SETTINGS_MODULE) File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked ModuleNotFoundError: No module named ' lawyer' my project is called a lawyer. it has a standard structure. The configuration files and wsgi are located in the folder of the same name - lawyer. lawyer/lawyer/settings.py, lawyer/lawyer/wsgi.py "lawyer" is not a python module, but the name of the project and the project directory where I store the settings and the wsgi file Please help me to run my project my uwsgi ini file: [uwsgi] chdir = /root/eva/lawyer env = DJANGO_SETTINGS_MODULE= lawyer.settings wsgi-file = /root/eva/lawyer/lawyer/wsgi.py #module = lawyer.uwsgi:application workers = 1 max-requests = 5000 #plugins-dir=/usr/lib/uwsgi/plugins/ … -
best way to create example project in a django plugin test suite
This may be a simple question, but I can't wrap my head around it. Given I make a Django plugin app, lets name it foo, which adds some database features, that other apps can use (e.g. models that must be inherited), and I want to add tests for that app. Structure: foo/ apps.py models.py tests/ test_foo_basic.py test_bar.py ... setup.py README.md ... The project is no full Django application, as it is an plugin app for others. So I need to create a fake Django project within the testing directory, with at least one app, which defines some models that inherit from foo.models.<some_model> and test it, right? Is that the only way? It seems a but much for me. If so, it's ok for me to give me the answer "it is so". And I'll accept ;-) If not, please tell me I am complicated and show me something easier, a pytest plugin etc.? For testing, I need a -
Markdown.convert() missing 2 required positional arguments: 'self' and 'text'
Markdowner = Markdown.convert() [image ling] Trying to convert markdown into HTML using Python's Markdown2 library, However I keep getting the error -Markdown.convert() missing 2 required positional arguments: 'self' and 'text'- -
unable to install with pip after creating virtual environment
(django-env) C:\Users\Username\dev> pip install django Unable to create process using 'C:\Users\UsernameT\AppData\Local\Programs\Python\Python310\python.exe "C:\Users\UsernameT\dev\django-env\Scripts\pip.exe" install django' installed virtualenv using : pip install virtualenv; virtualenv django-env; django-env\scripts\activate -
DRF & Next.js: Cookies are not stored in the browser only in the production environment
I'm working on a web app with DRF in the back and Next.js in the front. For some reason, only in the production environment, the JWT cookie from authentication is not saved in the browser. For DRF authentication, we use dj-rest-auth and djangorestframework-simplejwt. We are using axios to fetch from Next.js and have withCredentials: true enabled. Everything works fine in the local environment, but why aren't cookies being saved in the production environment? The only difference between local and production is the difference in the domain of both (domain.com, sub.domain.com) and SSL. # settings.py CORS_ORIGIN_WHITELIST = 'https://sub.domain.com' CORS_ALLOW_CREDENTIALS = True REST_SESSION_LOGIN = False REST_USE_JWT = True SIMPLE_JWT = { "ACCESS_TOKEN_LIFETIME": timedelta(minutes=60), "REFRESH_TOKEN_LIFETIME": timedelta(days=7), "ROTATE_REFRESH_TOKENS": True, "BLACKLIST_AFTER_ROTATION": True, "USER_ID_FIELD": "id", "USER_ID_CLAIM": "user_id", } if not DEBUG: JWT_AUTH_SECURE = True set-cookie: jwt-token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjQxOTgxMzIwLCJpYXQiOjE2NDE5Nzc3MjAsImp0aSI6ImJlMDY5NGExMjcyZTQ4NWE5ODQ2ZjRlZGE0NTZjZGQ4IiwidXNlcl9pZCI6Ijg5ODFjZTQ2LTVjYTgtNDM5Ni04YjE3LWM0NWRkNTg3ZWI3YiJ9.FonD-pv8hvB3J3XmCDE0kFBF7HHEPim6IJ7KTrbyIf0; expires=Wed, 12 Jan 2022 09:55:20 GMT; HttpOnly; Max-Age=3600; Path=/; SameSite=Lax; Secure set-cookie: refresh-token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTY0MjU4MjUyMCwiaWF0IjoxNjQxOTc3NzIwLCJqdGkiOiIzNDJiZGYxMzM4ZjU0MTA4YTA5M2MyYzM0Nzk1ZmM3ZSIsInVzZXJfaWQiOiI4OTgxY2U0Ni01Y2E4LTQzOTYtOGIxNy1jNDVkZDU4N2ViN2IifQ.D6FQZAZ54wYlGXt_g2ycu4-J-Gq6g7v4S1rb_Nc4IoM; expires=Wed, 19 Jan 2022 08:55:20 GMT; HttpOnly; Max-Age=604800; Path=/; SameSite=Lax; Secure -
How to format negative numbers in django-tables2?
I am looking for nice solution to make a simple subclassed NumericColumn for my tables, based on django-tables2. I started with that: class NumericColumn(Column): def render(self, value): return '{:0,.2f}'.format(value) It works great until I decided to make negative values red: class NumericColumn(Column): attrs = { 'td': { 'class': lambda value: 'text-danger' if value < 0 else '' } } def render(self, value): return '{:0,.2f}'.format(value) Code periodically fails with TypeError: '<' not supported between instances of 'str' and 'int', and it seems that lambda function receives already formatted value. I don't see a way to get an original value in record via accessor, and I don't think that it is nice to make a reverse conversion to Decimal for such comparison. Ok, I can test first character for '-', but it is too ugly. Please help. -
TwiML response body too large error - python django
I am getting error "TwiML response body too large". I am trying to create own opt-out list. When user press 0 to opt out via outbound call, I want to store his phone number to the database. How do I create my own opt-out list? Is there any other way to create own opt-out list. I am new to Twilio. Please help. Thanks. def handle_user_response(request): digits = request.data.get('Digits', '') phone=request.data.get('To','') resp = VoiceResponse() if digits == '0': resp.say("Your phone number is opted out.") OptOutList.objects.create(phoneNumber=phone) else: resp.say("Sorry, I don't understand that choice.") return HttpResponse(str(resp)) Here is my model in django. class OptOutList(models.Model): phoneNumber=models.CharField(max_length=20) def __str__(self): return self.phoneNumber -
How to get all fields of related object Django
I have two models: class Checklist(models.Model): author = models.ForeignKey(User, null=True, on_delete=models.SET_NULL) client_name = models.ForeignKey(Client, on_delete=models.CASCADE, related_name='details') filedA = models.CharField(max_length=25, blank=True, null=True) filedA_Check= models.BooleanField(default=False) filedB = models.CharField(max_length=25, blank=True, null=True) filedB_Check= models.BooleanField(default=False) class Client(models.Model): client_filedA = models.CharField(max_length=25) client_filedB = models.CharField(max_length=25) client_filedC = models.CharField(max_length=25) Now I trying to change Client instance fields values via Checklist using following code: @login_required def create_order(request, pk): instance = get_object_or_404(CheckList, id=pk) form = myForm(request.POST or None, instance=instance) if form.is_valid(): form.save() messages.success(request, 'Test message') return get_PDF_order(request, pk) return render(request, 'templates/create_order.html', {'form': form}) And it's works but only once. Data saved and I get a pdf file with this data, but subsequent attempts do not change anything. The field value still the same. I'm guessing that it is because I working with the Checklist instance but not Client. So, my questions are: 1) How I can get an access to all Client fields (a queryset of all fileds) via Checklist? 2) Although my code is incorrect - why does it work (once)? I mean why does it save first time? Thank you all in advance! -
Django forms validating but not showing errors added on clean
I want to get my validation errors printed right after my form. When it comes to validate, it does the work right so if i put a date before today it just doesn´t save the form. Inside this validation I have an error adding line if it doesn´t pass validation like this: class PostVacation(forms.ModelForm): class Meta: model = Vacation fields = ( 'fecha_inicio', 'fecha_fin', ) fecha_inicio = forms.DateField(widget = forms.DateInput(format='%d/%m/%Y',attrs={'type':'date','class': 'form-control'})) fecha_fin = forms.DateField(widget = forms.DateInput(format='%d/%m/%Y',attrs={'type':'date','class': 'form-control'})) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def clean_fecha_inicio(self): data = self.cleaned_data['fecha_inicio'] if data < timezone.now().date(): print(type(data)) self.add_error(None,"La fecha de inicio no puede ser anterior a hoy") return data Inside my template I try this: <div class="col-md-4 listados"> <form method="POST">{% csrf_token %} <div class="form-group"> {{ form.as_p }} {{ form.non_field_errors }} <p>Los campos marcados con * son obligatorios</p> <button type="submit" class="btn boton_generico">Guardar</button> </div> </form> </div> But it just returns empty Any help welcome -
ModuleNotFoundError: No module named 'django.contrib.staticfilesbase'
every time I try to run my program using python manage.py runserver the same error comes up. "ModuleNotFoundError: No module named 'django.contrib.staticfilesbase'" -
Deploy Django Telegram bot on digital ocean
I am a beginner python programmer. I made a Telegram bot in Django framework. The bot's files are located in myapp/management/commands/bot.py. I am using 2 terminals on my computer to use both the bot and the Django administration on the local network. 1-terminal python manage.py bot. 2-terminal python manage.py runserver. I want to deploy this project in the digital ocean. What should I do for the Django administration and bot to work. -
context data wont display anything in detailview
I'm trying to display this models' object where the user is as same as the detail view user. here is my views: class ScientificInfoView(FormMixin, DetailView): model = ScientificInfo template_name = 'reg/scientific-info.html' form_class = ScientificInfoForm def get_success_url(self): messages.success(self.request, 'Profile details updated.') return reverse('scientific-info', kwargs={'pk': self.object.pk}) def get_context_date(self, **kwargs): context = super(ScientificInfoView, self).get_context_data(**kwargs) #THIS IS THE LINE THAT WONT WORK# context['result'] = Results.objects.filter(user=self.object.user) context['sample'] = 'sample text sample text' ################################# context['form'] = ScientificInfoForm() return context def post(self, request, pk): self.object = self.get_object() form = ScientificInfoForm(request.POST, instance=get_object_or_404(ScientificInfo, id=pk)) if form.is_valid(): return self.form_valid(form) else: return self.form_invalid(form) def form_valid(self, form): f = form.save(commit=False) f.user = self.object.user f.save() return super(ScientificInfoView, self).form_valid(form) everything works fine except the result and sample data. it shows nothing in the template. It cant even render a simple text! this is the templates: {% for r in result %} {{r}} {% endfor %} {{ sample }} -
getting error ..................The QuerySet value for an exact lookup must be limited to one result using slicing
I'm building a socialmedia website in django.While I tried to list all the comments in the index page, i am getting this error, The QuerySet value for an exact lookup must be limited to one result using slicing and when i am using.... comments = PostComment.objects.filter(post__in=allPost)... instead of ....comments = PostComment.objects.filter(post=allPost)....the queryset is not getting filtered and i am getting the same comments in all the post, basically i want to show comments under all the post and that comment should be refferd to as that post things i have tried instead of .......... comments = PostComment.objects.filter(post=allPost) 1.....comments = PostComment.objects.filter(post__in=allPost) 2.....comments = PostComment.objects.get(post__in=allPost) 3.....comments = PostComment.objects.get(post=allPost) 4.....comments = PostComment.objects.filter(post_id__in=allPost) 5.....comments = PostComment.objects.filter(post__id__in=allPost) 6.....comments = PostComment.objects.filter(post_id=allPost) but none of them are working............................................please help me what should i do in this case views.py.... def index(request): if request.user.is_authenticated: allPost = Post.objects.all().order_by('-created_on').filter(creater = request.user) allBlog = Blogpost.objects.all() comments = PostComment.objects.filter(post=allPost) context = {'allPost' : allPost, 'allBlog' : allBlog, 'comments' : comments} return render(request, 'index.html', context) else: return render(request, "signoption.html") models.py.... class Post(models.Model): sno = models.AutoField(primary_key=True) caption = models.CharField(max_length=500) hashtag = models.CharField(max_length=500) image = models.ImageField(upload_to='socialmedia/images', default="") created_on = models.DateTimeField(default=timezone.now) creater = models.ForeignKey(User, on_delete=models.CASCADE) def __str__(self): return str(self.sno) + '.....Post By.....' + str(self.creater) class PostComment(models.Model): sno … -
How to filter objects with the pk of another model as filter
I have two models: Project Expense Each Expense object has a column called project_id, in other words, each Expense is associated to a Project. I want to list all the Projects for a specific user (working) and all the Expenses for the projects of the specific user. What I've tried: projects = Project.objects.filter(project_manager = request.user.first_name +" "+request.user.last_name) #working ok expenses = Expense.objects.filter(??????) #stucked here -
Display only certain events in iframe
I am currently using a Service account that displays all the events for all days using the Google api calendar. I would like to display only events for a user within the embed iframe or create an own table. Now I have been looking into OAuth 2.0 Client IDs and tokens as well. Is there a way to create different calendars based of each user and then get their iframe as well(similar idea different execution though as iframe locations would be problematic). The calendars should be permanent unless the user is deleted. Would a generic table creation be more useful here? and how would I go about creating one. iframe: {% block content %} <h1>Calendar</h1> <button> + </button> <iframe src="https://calendar.google.com/calendar/embed?src=------" style="border: 0" width="800" height="600" frameborder="0" scrolling="no"> </iframe> <ul> {% for result in results %} <li>{{result.start.date}}{% if result.end.date %}-{% endif%}{{result.end.date}}: {{result.summary}}</li> {% endfor %} </ul> {% endblock %} for service from decouple import config from google.oauth2 import service_account import googleapiclient.discovery import datetime CAL_ID = config('CAL_ID') SCOPES = ['https://www.googleapis.com/auth/calendar'] SERVICE_ACCOUNT_FILE = './google-credentials.json' def test_calendar(): print("RUNNING TEST_CALENDAR()") credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES) service = googleapiclient.discovery.build('calendar', 'v3', credentials=credentials) """ new_event = { 'summary': "Ben Hammond Tech's Super Awesome Event", 'location': 'Denver, CO USA', 'description': 'https://benhammond.tech', … -
django doesnt run a specific migration (it skipped) in production
when I ran the makemigrations it returns users/migrations/0002_remove_profile_image.py - Remove field image from profile But when i ran migrate users 0002.. it said CommandError: Cannot find a migration matching '0002_remove_profile_image.py' from app 'users' when i ran migrate it said No migrations to apply. Your models in app(s): 'users' have changes that are not yet reflected in a migration, and so won't be applied. Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them. what can i do? i am deploying on heroku -
django date field with year and month inputs
I have a django form that takes the year and month as integers, and uses these inputs to add the concatenated value (year-month) to a charfield called date: 'date': str(form.cleaned_data['year']) + '-' + str(form.cleaned_data['month']) django model: year = models.IntegerField() month = models.IntegerField() date = models.CharField(max_length=30) the issue, as shown in the chart below, 2021-12 is being treated as smaller than 2021-4. How can I create a django date field that only takes month and year as inputs and can have the result being showed in the right ascending order, 2021-4 then 2021-12 OR in the form of 2021, April then 2021, December. -
How to filter in django using adding days to existing dates
class Payment(models.Model): name = models.CharField() payment_date = models.DateField() Example Table Payment id name payment_date 1 A 2022-01-01 2 B 2022-01-02 3 C 2022-01-02 4 D 2022-01-06 Suppose the due date for each payment is payment_date+10 days. Suppose iam checking on the date '2022-01-12' the records which are due is 2022-01-01 + 10 days = 2022-01-11 Due 2022-01-02 + 10 days = 2022-01-12 Due 2022-01-06 + 10 days = 2022-01-16 Not Due So my sample output should be Sample: <QuerySet [<Payment: A>, <Payment: B>, <Payment: C>]>