MCPcopy
hub / github.com/django/django / get_context_data

Method get_context_data

django/contrib/admindocs/views.py:234–412  ·  view source on GitHub ↗
(self, **kwargs)

Source from the content-addressed store, hash-verified

232 template_name = "admin_doc/model_detail.html"
233
234 def get_context_data(self, **kwargs):
235 model_name = self.kwargs["model_name"]
236 # Get the model class.
237 try:
238 app_config = apps.get_app_config(self.kwargs["app_label"])
239 except LookupError:
240 raise Http404(_("App %(app_label)r not found") % self.kwargs)
241 try:
242 model = app_config.get_model(model_name)
243 except LookupError:
244 raise Http404(
245 _("Model %(model_name)r not found in app %(app_label)r") % self.kwargs
246 )
247
248 opts = model._meta
249 if not user_has_model_view_permission(self.request.user, opts):
250 raise PermissionDenied
251
252 title, body, metadata = utils.parse_docstring(model.__doc__)
253 title = title and utils.parse_rst(title, "model", _("model:") + model_name)
254 body = body and utils.parse_rst(body, "model", _("model:") + model_name)
255
256 # Gather fields/field descriptions.
257 fields = []
258 for field in opts.fields:
259 # ForeignKey is a special case since the field will actually be a
260 # descriptor that returns the other object
261 if isinstance(field, models.ForeignKey):
262 data_type = field.remote_field.model.__name__
263 app_label = field.remote_field.model._meta.app_label
264 verbose = utils.parse_rst(
265 (
266 _("the related `%(app_label)s.%(data_type)s` object")
267 % {
268 "app_label": app_label,
269 "data_type": data_type,
270 }
271 ),
272 "model",
273 _("model:") + data_type,
274 )
275 else:
276 data_type = get_readable_field_data_type(field)
277 verbose = field.verbose_name
278 fields.append(
279 {
280 "name": field.name,
281 "data_type": data_type,
282 "verbose": verbose or "",
283 "help_text": field.help_text,
284 }
285 )
286
287 # Gather many-to-many fields.
288 for field in opts.many_to_many:
289 data_type = field.remote_field.model.__name__
290 app_label = field.remote_field.model._meta.app_label
291 verbose = _("related `%(app_label)s.%(object_name)s` objects") % {

Callers

nothing calls this directly

Calls 15

Http404Class · 0.90
method_has_no_argsFunction · 0.90
func_accepts_kwargsFunction · 0.90
func_accepts_var_argsFunction · 0.90
get_func_full_argsFunction · 0.90
get_return_data_typeFunction · 0.85
strip_p_tagsFunction · 0.85
get_app_configMethod · 0.80
get_modelMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected